@@ -43,6 +43,8 @@ public class DatabricksHttpClientTest {
4343
4444 @ Mock CloseableHttpResponse closeableHttpResponse ;
4545
46+ @ Mock HttpClientBuilder httpClientBuilder ;
47+
4648 private static final String CLUSTER_JDBC_URL =
4749 "jdbc:databricks://e2-dogfood.staging.cloud.databricks.com:443/default;transportMode=http;ssl=1;httpPath=sql/protocolv1/o/6051921418418893/1115-130834-ms4m0yv;AuthMech=3;UserAgentEntry=MyApp" ;
4850 private static final String DBSQL_JDBC_URL =
@@ -77,7 +79,6 @@ public void testSetFakeServiceRouteInHttpClient() throws HttpException {
7779 final String testFakeServiceURI = "http://localhost:8080" ;
7880 System .setProperty (testTargetURI + FAKE_SERVICE_URI_PROP_SUFFIX , testFakeServiceURI );
7981
80- HttpClientBuilder httpClientBuilder = Mockito .mock (HttpClientBuilder .class );
8182 ArgumentCaptor <HttpRoutePlanner > routePlannerCaptor =
8283 ArgumentCaptor .forClass (HttpRoutePlanner .class );
8384
@@ -101,11 +102,29 @@ public void testSetFakeServiceRouteInHttpClient() throws HttpException {
101102 System .clearProperty (testTargetURI + FAKE_SERVICE_URI_PROP_SUFFIX );
102103 }
103104
105+ @ Test
106+ public void testSetFakeServiceRouteInHttpClientWithLocalhostTarget () throws HttpException {
107+ ArgumentCaptor <HttpRoutePlanner > routePlannerCaptor =
108+ ArgumentCaptor .forClass (HttpRoutePlanner .class );
109+
110+ DatabricksHttpClient .setFakeServiceRouteInHttpClient (httpClientBuilder );
111+
112+ Mockito .verify (httpClientBuilder ).setRoutePlanner (routePlannerCaptor .capture ());
113+ HttpRoutePlanner capturedRoutePlanner = routePlannerCaptor .getValue ();
114+
115+ HttpGet request = new HttpGet ("http://localhost:53423" );
116+ HttpRoute route =
117+ capturedRoutePlanner .determineRoute (
118+ HttpHost .create (request .getURI ().toString ()), request , null );
119+
120+ // Verify the route has no proxy host set as the target URI directly points to fake service
121+ assertNull (route .getProxyHost ());
122+ }
123+
104124 @ Test
105125 public void testSetFakeServiceRouteInHttpClientThrowsError () {
106126 final String testTargetURI = "https://example.com" ;
107127
108- HttpClientBuilder httpClientBuilder = Mockito .mock (HttpClientBuilder .class );
109128 ArgumentCaptor <HttpRoutePlanner > routePlannerCaptor =
110129 ArgumentCaptor .forClass (HttpRoutePlanner .class );
111130
@@ -131,7 +150,6 @@ public void testSetFakeServiceRouteInHttpClientThrowsHTTPError() {
131150 final String testFakeServiceURI = "http://localhost:8080" ;
132151 System .setProperty (testTargetURI + FAKE_SERVICE_URI_PROP_SUFFIX , testFakeServiceURI );
133152
134- HttpClientBuilder httpClientBuilder = Mockito .mock (HttpClientBuilder .class );
135153 ArgumentCaptor <HttpRoutePlanner > routePlannerCaptor =
136154 ArgumentCaptor .forClass (HttpRoutePlanner .class );
137155
0 commit comments