HttpClientConfig { public static HttpClientConfig basicConfig() { return BASIC_CONFIG; } private  HttpClientConfig(ObjectMapper customObjectMapper, ProxySettings proxySettings); static HttpClientConfig basicConfig(); Optional<ObjectMapper> customObjectMapper(); ObjectMapper getOrCreateObjectMapper(); ProxySettings proxySettings(); HttpClientConfig withObjectMapper(ObjectMapper newMapper); HttpClientConfig withProxySettings(ProxySettings newProxySettings); @Override boolean equals(Object o); @Override int hashCode();  }
@Test public void testBasicConfig() { HttpClientConfig basicConfig = HttpClientConfig.basicConfig(); assertThat(basicConfig.customObjectMapper()).isNotPresent(); assertThat(basicConfig.proxySettings().isProxyUse()).isFalse(); }
@Test public void testBasicConfigIsSingleton() { HttpClientConfig config1 = HttpClientConfig.basicConfig(); HttpClientConfig config2 = HttpClientConfig.basicConfig(); assertThat(config2).isSameAs(config1); }