Skip to content

Commit ac59016

Browse files
committed
Mock resproxy API responses in tests
1 parent cb31004 commit ac59016

File tree

2 files changed

+73
-10
lines changed

2 files changed

+73
-10
lines changed

pom.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,12 @@
8383
<version>5.2.0</version>
8484
<scope>test</scope>
8585
</dependency>
86+
<dependency>
87+
<groupId>com.squareup.okhttp3</groupId>
88+
<artifactId>mockwebserver</artifactId>
89+
<version>4.10.0</version>
90+
<scope>test</scope>
91+
</dependency>
8692
</dependencies>
8793

8894
<profiles>

src/test/java/io/ipinfo/IPinfoTest.java

Lines changed: 67 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,13 @@
55
import io.ipinfo.api.model.ASNResponse;
66
import io.ipinfo.api.model.IPResponse;
77
import io.ipinfo.api.model.ResproxyResponse;
8+
import okhttp3.OkHttpClient;
9+
import okhttp3.mockwebserver.MockResponse;
10+
import okhttp3.mockwebserver.MockWebServer;
811
import org.junit.jupiter.api.Disabled;
912
import org.junit.jupiter.api.Test;
1013

14+
import java.io.IOException;
1115
import java.util.ArrayList;
1216
import java.util.Arrays;
1317
import java.util.List;
@@ -267,9 +271,32 @@ public void testGetBatchAsns() {
267271
}
268272

269273
@Test
270-
public void testLookupResproxy() {
274+
public void testLookupResproxy() throws IOException {
275+
MockWebServer server = new MockWebServer();
276+
String mockResponseBody = "{\"ip\":\"175.107.211.204\",\"last_seen\":\"2025-01-20\",\"percent_days_seen\":0.85,\"service\":\"example_service\"}";
277+
server.enqueue(new MockResponse()
278+
.setBody(mockResponseBody)
279+
.addHeader("Content-Type", "application/json"));
280+
server.start();
281+
282+
OkHttpClient client = new OkHttpClient.Builder()
283+
.addInterceptor(chain -> {
284+
okhttp3.Request originalRequest = chain.request();
285+
okhttp3.HttpUrl newUrl = originalRequest.url().newBuilder()
286+
.scheme("http")
287+
.host(server.getHostName())
288+
.port(server.getPort())
289+
.build();
290+
okhttp3.Request newRequest = originalRequest.newBuilder()
291+
.url(newUrl)
292+
.build();
293+
return chain.proceed(newRequest);
294+
})
295+
.build();
296+
271297
IPinfo ii = new IPinfo.Builder()
272-
.setToken(System.getenv("IPINFO_TOKEN"))
298+
.setToken("test_token")
299+
.setClient(client)
273300
.build();
274301

275302
try {
@@ -283,30 +310,58 @@ public void testLookupResproxy() {
283310
"IP mismatch"
284311
),
285312
() ->
286-
assertNotNull(
313+
assertEquals(
314+
"2025-01-20",
287315
response.getLastSeen(),
288-
"lastSeen should be set"
316+
"lastSeen mismatch"
289317
),
290318
() ->
291-
assertNotNull(
319+
assertEquals(
320+
Double.valueOf(0.85),
292321
response.getPercentDaysSeen(),
293-
"percentDaysSeen should be set"
322+
"percentDaysSeen mismatch"
294323
),
295324
() ->
296-
assertNotNull(
325+
assertEquals(
326+
"example_service",
297327
response.getService(),
298-
"service should be set"
328+
"service mismatch"
299329
)
300330
);
301331
} catch (RateLimitedException e) {
302332
fail(e);
333+
} finally {
334+
server.shutdown();
303335
}
304336
}
305337

306338
@Test
307-
public void testLookupResproxyEmpty() {
339+
public void testLookupResproxyEmpty() throws IOException {
340+
MockWebServer server = new MockWebServer();
341+
String mockResponseBody = "{}";
342+
server.enqueue(new MockResponse()
343+
.setBody(mockResponseBody)
344+
.addHeader("Content-Type", "application/json"));
345+
server.start();
346+
347+
OkHttpClient client = new OkHttpClient.Builder()
348+
.addInterceptor(chain -> {
349+
okhttp3.Request originalRequest = chain.request();
350+
okhttp3.HttpUrl newUrl = originalRequest.url().newBuilder()
351+
.scheme("http")
352+
.host(server.getHostName())
353+
.port(server.getPort())
354+
.build();
355+
okhttp3.Request newRequest = originalRequest.newBuilder()
356+
.url(newUrl)
357+
.build();
358+
return chain.proceed(newRequest);
359+
})
360+
.build();
361+
308362
IPinfo ii = new IPinfo.Builder()
309-
.setToken(System.getenv("IPINFO_TOKEN"))
363+
.setToken("test_token")
364+
.setClient(client)
310365
.build();
311366

312367
try {
@@ -329,6 +384,8 @@ public void testLookupResproxyEmpty() {
329384
);
330385
} catch (RateLimitedException e) {
331386
fail(e);
387+
} finally {
388+
server.shutdown();
332389
}
333390
}
334391
}

0 commit comments

Comments
 (0)