lunar-shadow commented on code in PR #15506:
URL: https://github.com/apache/iceberg/pull/15506#discussion_r3107340646
##########
aws/src/test/java/org/apache/iceberg/aws/TestHttpClientConfigurations.java:
##########
@@ -137,4 +137,140 @@ public void testApacheDefaultConfigurations() {
Mockito.verify(spyApacheHttpClientBuilder, Mockito.never())
.proxyConfiguration(Mockito.any(ProxyConfiguration.class));
}
+
+ @Test
+ public void testApacheProxySystemPropertyValues() {
+ Map<String, String> properties = Maps.newHashMap();
+ properties.put(HttpClientProperties.PROXY_USE_SYSTEM_PROPERTY_VALUES,
"false");
+ ApacheHttpClientConfigurations apacheHttpClientConfigurations =
+ ApacheHttpClientConfigurations.create(properties);
+ ApacheHttpClient.Builder apacheHttpClientBuilder =
ApacheHttpClient.builder();
+ ApacheHttpClient.Builder spyApacheHttpClientBuilder =
Mockito.spy(apacheHttpClientBuilder);
+
+
apacheHttpClientConfigurations.configureApacheHttpClientBuilder(spyApacheHttpClientBuilder);
+
+ Mockito.verify(spyApacheHttpClientBuilder)
+ .proxyConfiguration(Mockito.any(ProxyConfiguration.class));
+ }
+
+ @Test
+ public void testApacheProxyEnvironmentVariableValues() {
+ Map<String, String> properties = Maps.newHashMap();
+ properties.put(HttpClientProperties.PROXY_USE_ENVIRONMENT_VARIABLE_VALUES,
"false");
+ ApacheHttpClientConfigurations apacheHttpClientConfigurations =
+ ApacheHttpClientConfigurations.create(properties);
+ ApacheHttpClient.Builder apacheHttpClientBuilder =
ApacheHttpClient.builder();
+ ApacheHttpClient.Builder spyApacheHttpClientBuilder =
Mockito.spy(apacheHttpClientBuilder);
+
+
apacheHttpClientConfigurations.configureApacheHttpClientBuilder(spyApacheHttpClientBuilder);
+
+ Mockito.verify(spyApacheHttpClientBuilder)
+ .proxyConfiguration(Mockito.any(ProxyConfiguration.class));
+ }
+
+ @Test
+ public void testUrlConnectionProxySystemPropertyValues() {
+ Map<String, String> properties = Maps.newHashMap();
+ properties.put(HttpClientProperties.PROXY_USE_SYSTEM_PROPERTY_VALUES,
"false");
+ UrlConnectionHttpClientConfigurations
urlConnectionHttpClientConfigurations =
+ UrlConnectionHttpClientConfigurations.create(properties);
+ UrlConnectionHttpClient.Builder urlConnectionHttpClientBuilder =
+ UrlConnectionHttpClient.builder();
+ UrlConnectionHttpClient.Builder spyUrlConnectionHttpClientBuilder =
+ Mockito.spy(urlConnectionHttpClientBuilder);
+
+
urlConnectionHttpClientConfigurations.configureUrlConnectionHttpClientBuilder(
+ spyUrlConnectionHttpClientBuilder);
+
+ Mockito.verify(spyUrlConnectionHttpClientBuilder)
+ .proxyConfiguration(
+
Mockito.any(software.amazon.awssdk.http.urlconnection.ProxyConfiguration.class));
+ }
+
+ @Test
+ public void testUrlConnectionProxyEnvironmentVariableValues() {
+ Map<String, String> properties = Maps.newHashMap();
+ properties.put(HttpClientProperties.PROXY_USE_ENVIRONMENT_VARIABLE_VALUES,
"false");
+ UrlConnectionHttpClientConfigurations
urlConnectionHttpClientConfigurations =
+ UrlConnectionHttpClientConfigurations.create(properties);
+ UrlConnectionHttpClient.Builder urlConnectionHttpClientBuilder =
+ UrlConnectionHttpClient.builder();
+ UrlConnectionHttpClient.Builder spyUrlConnectionHttpClientBuilder =
+ Mockito.spy(urlConnectionHttpClientBuilder);
+
+
urlConnectionHttpClientConfigurations.configureUrlConnectionHttpClientBuilder(
+ spyUrlConnectionHttpClientBuilder);
+
+ Mockito.verify(spyUrlConnectionHttpClientBuilder)
+ .proxyConfiguration(
+
Mockito.any(software.amazon.awssdk.http.urlconnection.ProxyConfiguration.class));
+ }
+
+ @Test
+ public void testApacheProxySystemPropertyValuesExplicitTrue() {
+ Map<String, String> properties = Maps.newHashMap();
+ properties.put(HttpClientProperties.PROXY_USE_SYSTEM_PROPERTY_VALUES,
"true");
+ ApacheHttpClientConfigurations apacheHttpClientConfigurations =
+ ApacheHttpClientConfigurations.create(properties);
+ ApacheHttpClient.Builder apacheHttpClientBuilder =
ApacheHttpClient.builder();
+ ApacheHttpClient.Builder spyApacheHttpClientBuilder =
Mockito.spy(apacheHttpClientBuilder);
+
+
apacheHttpClientConfigurations.configureApacheHttpClientBuilder(spyApacheHttpClientBuilder);
+
+ Mockito.verify(spyApacheHttpClientBuilder)
+ .proxyConfiguration(Mockito.any(ProxyConfiguration.class));
+ }
+
+ @Test
+ public void testApacheProxyEnvironmentVariableValuesExplicitTrue() {
+ Map<String, String> properties = Maps.newHashMap();
+ properties.put(HttpClientProperties.PROXY_USE_ENVIRONMENT_VARIABLE_VALUES,
"true");
+ ApacheHttpClientConfigurations apacheHttpClientConfigurations =
+ ApacheHttpClientConfigurations.create(properties);
+ ApacheHttpClient.Builder apacheHttpClientBuilder =
ApacheHttpClient.builder();
+ ApacheHttpClient.Builder spyApacheHttpClientBuilder =
Mockito.spy(apacheHttpClientBuilder);
+
+
apacheHttpClientConfigurations.configureApacheHttpClientBuilder(spyApacheHttpClientBuilder);
+
+ Mockito.verify(spyApacheHttpClientBuilder)
+ .proxyConfiguration(Mockito.any(ProxyConfiguration.class));
+ }
+
+ @Test
+ public void testUrlConnectionProxySystemPropertyValuesExplicitTrue() {
+ Map<String, String> properties = Maps.newHashMap();
+ properties.put(HttpClientProperties.PROXY_USE_SYSTEM_PROPERTY_VALUES,
"true");
+ UrlConnectionHttpClientConfigurations
urlConnectionHttpClientConfigurations =
+ UrlConnectionHttpClientConfigurations.create(properties);
+ UrlConnectionHttpClient.Builder urlConnectionHttpClientBuilder =
+ UrlConnectionHttpClient.builder();
+ UrlConnectionHttpClient.Builder spyUrlConnectionHttpClientBuilder =
+ Mockito.spy(urlConnectionHttpClientBuilder);
+
+
urlConnectionHttpClientConfigurations.configureUrlConnectionHttpClientBuilder(
+ spyUrlConnectionHttpClientBuilder);
+
+ Mockito.verify(spyUrlConnectionHttpClientBuilder)
+ .proxyConfiguration(
+
Mockito.any(software.amazon.awssdk.http.urlconnection.ProxyConfiguration.class));
+ }
+
+ @Test
+ public void testUrlConnectionProxyEnvironmentVariableValuesExplicitTrue() {
+ Map<String, String> properties = Maps.newHashMap();
+ properties.put(HttpClientProperties.PROXY_USE_ENVIRONMENT_VARIABLE_VALUES,
"true");
+ UrlConnectionHttpClientConfigurations
urlConnectionHttpClientConfigurations =
+ UrlConnectionHttpClientConfigurations.create(properties);
+ UrlConnectionHttpClient.Builder urlConnectionHttpClientBuilder =
+ UrlConnectionHttpClient.builder();
+ UrlConnectionHttpClient.Builder spyUrlConnectionHttpClientBuilder =
+ Mockito.spy(urlConnectionHttpClientBuilder);
+
+
urlConnectionHttpClientConfigurations.configureUrlConnectionHttpClientBuilder(
+ spyUrlConnectionHttpClientBuilder);
+
+ Mockito.verify(spyUrlConnectionHttpClientBuilder)
+ .proxyConfiguration(
+
Mockito.any(software.amazon.awssdk.http.urlconnection.ProxyConfiguration.class));
+ }
Review Comment:
Thanks @flyrain, updated per your suggestion. I collapsed the proxy-flag
tests into two parameterized tests: `testApacheProxyFlagTriggersProxyConfig`
and `testUrlConnectionProxyFlagTriggersProxyConfig`, covering:
- `PROXY_USE_SYSTEM_PROPERTY_VALUES`
- `PROXY_USE_ENVIRONMENT_VARIABLE_VALUES`
Both tests verify that setting either flag triggers proxy configuration on
the corresponding HTTP client builder.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]