diff --git a/core/src/main/java/com/google/adk/sessions/VertexAiSessionService.java b/core/src/main/java/com/google/adk/sessions/VertexAiSessionService.java index 6831baefb..246e48498 100644 --- a/core/src/main/java/com/google/adk/sessions/VertexAiSessionService.java +++ b/core/src/main/java/com/google/adk/sessions/VertexAiSessionService.java @@ -148,7 +148,7 @@ private ListSessionsResponse parseListSessionsResponse( Session session = Session.builder(sessionId) .appName(appName) - .userId(userId) + .userId((String) apiSession.get("userId")) .state( apiSession.get("sessionState") == null ? new ConcurrentHashMap<>() diff --git a/core/src/test/java/com/google/adk/sessions/VertexAiSessionServiceTest.java b/core/src/test/java/com/google/adk/sessions/VertexAiSessionServiceTest.java index 6f63efd12..e91d4f732 100644 --- a/core/src/test/java/com/google/adk/sessions/VertexAiSessionServiceTest.java +++ b/core/src/test/java/com/google/adk/sessions/VertexAiSessionServiceTest.java @@ -279,6 +279,34 @@ public void listSessions_success() { assertThat(sessionsList).hasSize(2); ImmutableList ids = sessionsList.stream().map(Session::id).collect(toImmutableList()); assertThat(ids).containsExactly("1", "2"); + ImmutableList userIds = + sessionsList.stream().map(Session::userId).collect(toImmutableList()); + assertThat(userIds).containsExactly("user", "user"); + } + + @Test + public void listSessions_usesResponseUserId() throws Exception { + when(mockApiClient.request( + "GET", "reasoningEngines/123/sessions?filter=user_id%3D%22user1%22", "")) + .thenAnswer( + new MockApiAnswer( + """ + { + "sessions": [ + { + "name": "projects/test-project/locations/test-location/reasoningEngines/123/sessions/3", + "userId": "user2", + "updateTime": "2024-12-14T12:12:12.123456Z" + } + ] + }\ + """)); + + ListSessionsResponse sessions = + vertexAiSessionService.listSessions("123", "user1").blockingGet(); + + assertThat(sessions.sessions()).hasSize(1); + assertThat(sessions.sessions().get(0).userId()).isEqualTo("user2"); } @Test