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]

Reply via email to