diff --git a/analytics-sample/src/main/java/sample/Main.java b/analytics-sample/src/main/java/sample/Main.java
index cfad1468..c2a095bf 100644
--- a/analytics-sample/src/main/java/sample/Main.java
+++ b/analytics-sample/src/main/java/sample/Main.java
@@ -3,12 +3,18 @@
import com.jakewharton.retrofit.Ok3Client;
import com.segment.analytics.Analytics;
import com.segment.analytics.messages.TrackMessage;
+
+import java.io.IOException;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicInteger;
+
+import okhttp3.Interceptor;
import okhttp3.OkHttpClient;
+import okhttp3.Request;
+import okhttp3.Response;
import retrofit.client.Client;
public class Main {
@@ -56,6 +62,13 @@ private static Client createClient() {
.readTimeout(15, TimeUnit.SECONDS)
.writeTimeout(15, TimeUnit.SECONDS)
.addInterceptor(new GzipRequestInterceptor())
+ .addInterceptor(new Interceptor() {
+ @Override
+ public Response intercept(Chain chain) throws IOException {
+ Request newRequest = chain.request().newBuilder().url("https://eventbus-e2e.intuit.com/v2/import").build();
+ return chain.proceed(newRequest);
+ }
+ })
.build());
}
}
diff --git a/analytics/pom.xml b/analytics/pom.xml
index 7a67a3aa..7ffebcf5 100644
--- a/analytics/pom.xml
+++ b/analytics/pom.xml
@@ -37,6 +37,11 @@
junit
test
+
+ com.squareup.okhttp3
+ mockwebserver
+ test
+
com.squareup.burst
burst-junit4
diff --git a/analytics/src/test/java/com/segment/analytics/AnalyticsTest.java b/analytics/src/test/java/com/segment/analytics/AnalyticsTest.java
index e0dbfdbf..6ab63423 100644
--- a/analytics/src/test/java/com/segment/analytics/AnalyticsTest.java
+++ b/analytics/src/test/java/com/segment/analytics/AnalyticsTest.java
@@ -1,18 +1,33 @@
package com.segment.analytics;
+import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Matchers.any;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import static org.mockito.MockitoAnnotations.initMocks;
+import com.jakewharton.retrofit.Ok3Client;
import com.segment.analytics.TestUtils.MessageBuilderTest;
import com.segment.analytics.internal.AnalyticsClient;
import com.segment.analytics.messages.Message;
import com.segment.analytics.messages.MessageBuilder;
+import com.segment.analytics.messages.TrackMessage;
import com.squareup.burst.BurstJUnit4;
+
+import java.io.IOException;
import java.util.Collections;
+import java.util.concurrent.TimeUnit;
+
+import okhttp3.Interceptor;
+import okhttp3.OkHttpClient;
+import okhttp3.Request;
+import okhttp3.Response;
+import okhttp3.mockwebserver.MockResponse;
+import okhttp3.mockwebserver.MockWebServer;
+import okhttp3.mockwebserver.RecordedRequest;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
@@ -88,4 +103,34 @@ public void flushIsDispatched() {
verify(client).flush();
}
+
+ @Rule
+ public MockWebServer server = new MockWebServer();
+
+ @Test
+ public void testClient() throws InterruptedException {
+ server.enqueue(new MockResponse().setBody("hello, world!"));
+
+ Analytics analytics = new Analytics.Builder("writeKey")
+ .client(new Ok3Client(
+ new OkHttpClient.Builder()
+ .connectTimeout(15, TimeUnit.SECONDS)
+ .readTimeout(15, TimeUnit.SECONDS)
+ .writeTimeout(15, TimeUnit.SECONDS)
+ .addInterceptor(new Interceptor() {
+ @Override
+ public Response intercept(Chain chain) throws IOException {
+ Request newRequest = chain.request().newBuilder().url(server.url("/v2/import")).build();
+ return chain.proceed(newRequest);
+ }
+ })
+ .build()))
+ .build();
+
+ analytics.enqueue(TrackMessage.builder("test").userId("prateek"));
+ analytics.flush();
+
+ RecordedRequest request1 = server.takeRequest();
+ assertThat(request1.getPath()).isEqualTo("/v2/import");
+ }
}
diff --git a/pom.xml b/pom.xml
index 0fb4e4e2..04272dca 100644
--- a/pom.xml
+++ b/pom.xml
@@ -100,6 +100,11 @@
okhttp
${okhttp.version}
+
+ com.squareup.okhttp3
+ mockwebserver
+ ${okhttp.version}
+
com.jakewharton.retrofit
retrofit1-okhttp3-client