flyrain commented on code in PR #15506:
URL: https://github.com/apache/iceberg/pull/15506#discussion_r3103717836
##########
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:
Minor: we may collapse all tests to two. Here are reasons: We don't verify
the different behaviors when it is true or false anyways. And it may not worth
to do so given that there is no getters for useSystemPropertyValues or
useEnvironmentVariableValues.
```
@ParameterizedTest
@ValueSource(strings = {
HttpClientProperties.PROXY_USE_SYSTEM_PROPERTY_VALUES,
HttpClientProperties.PROXY_USE_ENVIRONMENT_VARIABLE_VALUES
})
public void testApacheProxyFlagTriggersProxyConfig(String propertyKey) {
Map<String, String> properties = Maps.newHashMap();
properties.put(propertyKey, "false");
ApacheHttpClient.Builder spy = Mockito.spy(ApacheHttpClient.builder());
ApacheHttpClientConfigurations.create(properties)
.configureApacheHttpClientBuilder(spy);
Mockito.verify(spy).proxyConfiguration(Mockito.any(ProxyConfiguration.class));
}
@ParameterizedTest
@ValueSource(strings = {
HttpClientProperties.PROXY_USE_SYSTEM_PROPERTY_VALUES,
HttpClientProperties.PROXY_USE_ENVIRONMENT_VARIABLE_VALUES
})
public void testUrlConnectionProxyFlagTriggersProxyConfig(String
propertyKey) {
Map<String, String> properties = Maps.newHashMap();
properties.put(propertyKey, "false");
UrlConnectionHttpClient.Builder spy =
Mockito.spy(UrlConnectionHttpClient.builder());
UrlConnectionHttpClientConfigurations.create(properties)
.configureUrlConnectionHttpClientBuilder(spy);
Mockito.verify(spy).proxyConfiguration(
Mockito.any(software.amazon.awssdk.http.urlconnection.ProxyConfiguration.class));
}
```
--
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]