map.put("http.proxy.https.authentication.ntlmHost", "ntlmH");
map.put("http.proxy.https.authentication.ntlmDomain", "ntlmD");
map.put("http.proxy.nonProxyHosts", "h1,h2");
HttpClientConfig config = new HttpClientConfigMarshallerImpl(authMarshallers).fromMap(map);
assertThat(config.getConnectionConfig().getTimeout(), is(1));
assertThat(config.getConnectionConfig().getRetries(), is(2));
assertThat(config.getConnectionConfig().getUrlParameters(), is("params"));
assertThat(config.getConnectionConfig().getUserAgentCustomisation(), is("ua"));
assertThat(config.getConnectionConfig().getUseTrustStore(), is(true));
UsernameAuthenticationConfig a1 = (UsernameAuthenticationConfig) config.getAuthenticationConfig();
assertThat(a1.getUsername(), is("foo"));
assertThat(a1.getPassword(), is("bar"));
assertThat(config.getProxyConfig().getHttpProxyConfig().getHostname(), is("httpHost"));
assertThat(config.getProxyConfig().getHttpProxyConfig().getPort(), is(3));
UsernameAuthenticationConfig a2 = (UsernameAuthenticationConfig) config.getProxyConfig().getHttpProxyConfig()
.getAuthenticationConfig();
assertThat(a2.getUsername(), is("foo1"));
assertThat(a2.getPassword(), is("bar1"));
assertThat(config.getProxyConfig().getHttpsProxyConfig().getHostname(), is("httpsHost"));
assertThat(config.getProxyConfig().getHttpsProxyConfig().getPort(), is(4));
NtlmAuthenticationConfig a3 = (NtlmAuthenticationConfig) config.getProxyConfig().getHttpsProxyConfig()
.getAuthenticationConfig();
assertThat(a3.getUsername(), is("foo2"));
assertThat(a3.getPassword(), is("bar2"));
assertThat(a3.getNtlmHost(), is("ntlmH"));
assertThat(a3.getNtlmDomain(), is("ntlmD"));
assertThat(config.getProxyConfig().getNonProxyHosts(), is(new String[]{"h1", "h2"}));
}