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