Skip to content

Commit 8a7f816

Browse files
google-genai-botcopybara-github
authored andcommitted
refactor: use mock api answers for tests
PiperOrigin-RevId: 888667558
1 parent f6ab9d9 commit 8a7f816

3 files changed

Lines changed: 15 additions & 21 deletions

File tree

core/src/main/java/com/google/adk/sessions/VertexAiSessionService.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ private ListSessionsResponse parseListSessionsResponse(
135135
JsonNode listSessionsResponseMap, String appName, String userId) {
136136
JsonNode sessionsNode = listSessionsResponseMap.get("sessions");
137137
if (sessionsNode == null || sessionsNode.isNull() || sessionsNode.isEmpty()) {
138-
return ListSessionsResponse.builder().sessions(new ArrayList<>()).build();
138+
return ListSessionsResponse.builder().build();
139139
}
140140
List<Map<String, Object>> apiSessions =
141141
objectMapper.convertValue(sessionsNode, new TypeReference<List<Map<String, Object>>>() {});
@@ -174,7 +174,7 @@ public Single<ListEventsResponse> listEvents(String appName, String userId, Stri
174174
private ListEventsResponse parseListEventsResponse(JsonNode listEventsResponse) {
175175
JsonNode sessionEventsNode = listEventsResponse.get("sessionEvents");
176176
if (sessionEventsNode == null || sessionEventsNode.isEmpty()) {
177-
return ListEventsResponse.builder().events(new ArrayList<>()).build();
177+
return ListEventsResponse.builder().build();
178178
}
179179
return ListEventsResponse.builder()
180180
.events(

core/src/test/java/com/google/adk/sessions/MockApiAnswer.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,14 +36,25 @@ class MockApiAnswer implements Answer<ApiResponse> {
3636

3737
private final Map<String, String> sessionMap;
3838
private final Map<String, String> eventMap;
39+
private final String rawApiResponse;
3940

4041
MockApiAnswer(Map<String, String> sessionMap, Map<String, String> eventMap) {
4142
this.sessionMap = sessionMap;
4243
this.eventMap = eventMap;
44+
this.rawApiResponse = null;
45+
}
46+
47+
MockApiAnswer(String rawApiResponse) {
48+
this.sessionMap = null;
49+
this.eventMap = null;
50+
this.rawApiResponse = rawApiResponse;
4351
}
4452

4553
@Override
4654
public ApiResponse answer(InvocationOnMock invocation) throws Throwable {
55+
if (rawApiResponse != null) {
56+
return responseWithBody(rawApiResponse);
57+
}
4758
String httpMethod = invocation.getArgument(0);
4859
String path = invocation.getArgument(1);
4960
if (httpMethod.equals("POST") && SESSIONS_REGEX.matcher(path).matches()) {

core/src/test/java/com/google/adk/sessions/VertexAiSessionServiceTest.java

Lines changed: 2 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,6 @@
2525
import java.util.Optional;
2626
import java.util.concurrent.ConcurrentHashMap;
2727
import java.util.concurrent.ConcurrentMap;
28-
import okhttp3.MediaType;
29-
import okhttp3.ResponseBody;
3028
import org.junit.Before;
3129
import org.junit.Test;
3230
import org.junit.runner.RunWith;
@@ -39,21 +37,6 @@
3937
public class VertexAiSessionServiceTest {
4038

4139
private static final ObjectMapper mapper = JsonBaseModel.getMapper();
42-
private static final MediaType JSON_MEDIA_TYPE =
43-
MediaType.parse("application/json; charset=utf-8");
44-
45-
private static ApiResponse apiResponseJson(String json) {
46-
return new ApiResponse() {
47-
@Override
48-
public ResponseBody getResponseBody() {
49-
return ResponseBody.create(JSON_MEDIA_TYPE, json);
50-
}
51-
52-
@Override
53-
public void close() {}
54-
};
55-
}
56-
5740
private static final String MOCK_SESSION_STRING_1 =
5841
"""
5942
{
@@ -338,7 +321,7 @@ public void listSessions_empty() {
338321
@Test
339322
public void listSessions_missingSessionsField_returnsEmpty() {
340323
when(mockApiClient.request("GET", "reasoningEngines/123/sessions?filter=user_id=userX", ""))
341-
.thenReturn(apiResponseJson("{}"));
324+
.thenAnswer(new MockApiAnswer("{}"));
342325

343326
assertThat(vertexAiSessionService.listSessions("123", "userX").blockingGet().sessions())
344327
.isEmpty();
@@ -347,7 +330,7 @@ public void listSessions_missingSessionsField_returnsEmpty() {
347330
@Test
348331
public void listSessions_nullSessionsField_returnsEmpty() {
349332
when(mockApiClient.request("GET", "reasoningEngines/123/sessions?filter=user_id=userY", ""))
350-
.thenReturn(apiResponseJson("{\"sessions\": null}"));
333+
.thenAnswer(new MockApiAnswer("{\"sessions\": null}"));
351334

352335
assertThat(vertexAiSessionService.listSessions("123", "userY").blockingGet().sessions())
353336
.isEmpty();

0 commit comments

Comments
 (0)