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]

Reply via email to