Skip to content

Commit 5a65825

Browse files
committed
test: add tests for custom OkHttpClient constructor
Verify that a user-provided OkHttpClient's configuration (connection pool, connect timeout, read timeout) is preserved, and that SDK interceptors are still applied on top. Made-with: Cursor
1 parent 780443e commit 5a65825

1 file changed

Lines changed: 33 additions & 0 deletions

File tree

src/test/java/io/getstream/StreamHTTPClientTest.java

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,13 @@
99
import io.getstream.models.TrackActivityMetricsRequest;
1010
import io.getstream.models.UpdateAppRequest;
1111
import io.getstream.services.framework.StreamHTTPClient;
12+
import io.getstream.services.framework.StreamSDKClient;
1213
import java.util.Date;
1314
import java.util.List;
1415
import java.util.Map;
16+
import java.util.concurrent.TimeUnit;
17+
import okhttp3.ConnectionPool;
18+
import okhttp3.OkHttpClient;
1519
import org.junit.jupiter.api.BeforeAll;
1620
import org.junit.jupiter.api.Test;
1721

@@ -135,6 +139,35 @@ void testTrackActivityMetricsRequestSerializedWithCustomMetric() throws JsonProc
135139
assertTrue(json.contains("\"delta\":3"), "Expected delta in: " + json);
136140
}
137141

142+
@Test
143+
void testCustomOkHttpClientPreservesConfig() {
144+
ConnectionPool customPool = new ConnectionPool(20, 120, TimeUnit.SECONDS);
145+
OkHttpClient customHttp =
146+
new OkHttpClient.Builder()
147+
.connectionPool(customPool)
148+
.connectTimeout(30, TimeUnit.SECONDS)
149+
.readTimeout(45, TimeUnit.SECONDS)
150+
.build();
151+
152+
var sdkClient =
153+
new StreamSDKClient(
154+
System.getenv("STREAM_API_KEY"), System.getenv("STREAM_API_SECRET"), customHttp);
155+
OkHttpClient builtClient = sdkClient.getHttpClient().getHttpClient();
156+
157+
assertSame(customPool, builtClient.connectionPool());
158+
assertEquals(30_000, builtClient.connectTimeoutMillis());
159+
assertEquals(45_000, builtClient.readTimeoutMillis());
160+
161+
assertFalse(
162+
builtClient.interceptors().isEmpty(), "SDK should add its interceptors to the client");
163+
}
164+
165+
@Test
166+
void testDefaultConstructorStillWorks() {
167+
assertNotNull(client.getHttpClient());
168+
assertFalse(client.getHttpClient().interceptors().isEmpty());
169+
}
170+
138171
@Test
139172
void testRFC3339TimestampParsing() throws Exception {
140173
// Create a JSON response with RFC 3339 formatted timestamp

0 commit comments

Comments
 (0)