Skip to content

Commit 5fe380b

Browse files
committed
chore: add discard url mock
1 parent 36e8171 commit 5fe380b

File tree

1 file changed

+59
-0
lines changed

1 file changed

+59
-0
lines changed

src/test/java/io/getstream/client/FlatFeedTest.java

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import java8.util.concurrent.CompletionException;
1818
import okhttp3.OkHttpClient;
1919
import org.junit.Test;
20+
import java.util.concurrent.atomic.AtomicReference;
2021

2122
public class FlatFeedTest {
2223
private static final String apiKey =
@@ -161,4 +162,62 @@ public void testGetActivitiesWithRequestOptions() throws Exception {
161162
).join();
162163
assert result3 != null;
163164
}
165+
166+
@Test
167+
public void testGetActivitiesUrlParameters() throws Exception {
168+
// Create a mock HTTP client that captures the request URL
169+
AtomicReference<String> capturedUrl = new AtomicReference<>();
170+
171+
// Create a custom OkHttpClient that intercepts requests
172+
OkHttpClient mockClient = new OkHttpClient.Builder()
173+
.addInterceptor(chain -> {
174+
capturedUrl.set(chain.request().url().toString());
175+
// Return a mock response
176+
return new okhttp3.Response.Builder()
177+
.request(chain.request())
178+
.protocol(okhttp3.Protocol.HTTP_1_1)
179+
.code(200)
180+
.message("OK")
181+
.body(okhttp3.ResponseBody.create(
182+
okhttp3.MediaType.parse("application/json"),
183+
"{\"results\":[],\"next\":\"\",\"duration\":\"0ms\"}"
184+
))
185+
.build();
186+
})
187+
.build();
188+
189+
Client client = Client.builder("test-key", "test-secret")
190+
.httpClient(new OKHTTPClientAdapter(mockClient))
191+
.build();
192+
193+
FlatFeed feed = client.flatFeed("flat", "test-url-params");
194+
195+
// Test with multiple RequestOptions
196+
feed.getActivities(
197+
new Limit(20),
198+
new Offset(5),
199+
new Filter().refresh(),
200+
new DiscardActors("actor1", "actor2", "actor3")
201+
).join();
202+
203+
String url = capturedUrl.get();
204+
assert url != null;
205+
206+
// Verify URL contains expected parameters
207+
assert url.contains("limit=20") : "URL should contain limit=20, got: " + url;
208+
assert url.contains("offset=5") : "URL should contain offset=5, got: " + url;
209+
assert url.contains("refresh=1") : "URL should contain refresh=1, got: " + url;
210+
assert url.contains("discard_actors=actor1,actor2,actor3") : "URL should contain discard_actors, got: " + url;
211+
212+
// Test with custom separator
213+
capturedUrl.set(null);
214+
feed.getActivities(
215+
new DiscardActors(new String[]{"actor4", "actor5"}, "|")
216+
).join();
217+
218+
url = capturedUrl.get();
219+
assert url != null;
220+
assert url.contains("discard_actors=actor4%7Cactor5") : "URL should contain pipe-separated actors, got: " + url;
221+
assert url.contains("discard_actors_sep=%7C") : "URL should contain discard_actors_sep, got: " + url;
222+
}
164223
}

0 commit comments

Comments
 (0)