|
27 | 27 | AgentCapabilities, |
28 | 28 | AgentCard, |
29 | 29 | Artifact, |
| 30 | + AuthenticatedExtendedCardNotConfiguredError, |
30 | 31 | CancelTaskRequest, |
31 | 32 | CancelTaskSuccessResponse, |
32 | 33 | DeleteTaskPushNotificationConfigParams, |
33 | 34 | DeleteTaskPushNotificationConfigRequest, |
34 | 35 | DeleteTaskPushNotificationConfigSuccessResponse, |
| 36 | + GetAuthenticatedExtendedCardRequest, |
| 37 | + GetAuthenticatedExtendedCardResponse, |
| 38 | + GetAuthenticatedExtendedCardSuccessResponse, |
35 | 39 | GetTaskPushNotificationConfigParams, |
36 | 40 | GetTaskPushNotificationConfigRequest, |
37 | 41 | GetTaskPushNotificationConfigResponse, |
@@ -1189,3 +1193,59 @@ async def test_on_delete_push_notification_error(self) -> None: |
1189 | 1193 | # Assert |
1190 | 1194 | self.assertIsInstance(response.root, JSONRPCErrorResponse) |
1191 | 1195 | self.assertEqual(response.root.error, UnsupportedOperationError()) # type: ignore |
| 1196 | + |
| 1197 | + async def test_get_authenticated_extended_card_success(self) -> None: |
| 1198 | + """Test successful retrieval of the authenticated extended agent card.""" |
| 1199 | + # Arrange |
| 1200 | + mock_request_handler = AsyncMock(spec=DefaultRequestHandler) |
| 1201 | + mock_extended_card = AgentCard( |
| 1202 | + name='Extended Card', |
| 1203 | + description='More details', |
| 1204 | + url='http://agent.example.com/api', |
| 1205 | + version='1.1', |
| 1206 | + capabilities=AgentCapabilities(), |
| 1207 | + default_input_modes=['text/plain'], |
| 1208 | + default_output_modes=['application/json'], |
| 1209 | + skills=[], |
| 1210 | + ) |
| 1211 | + handler = JSONRPCHandler( |
| 1212 | + self.mock_agent_card, |
| 1213 | + mock_request_handler, |
| 1214 | + extended_agent_card=mock_extended_card, |
| 1215 | + ) |
| 1216 | + request = GetAuthenticatedExtendedCardRequest(id='ext-card-req-1') |
| 1217 | + call_context = ServerCallContext(state={'foo': 'bar'}) |
| 1218 | + |
| 1219 | + # Act |
| 1220 | + response: GetAuthenticatedExtendedCardResponse = ( |
| 1221 | + await handler.get_authenticated_extended_card(request, call_context) |
| 1222 | + ) |
| 1223 | + |
| 1224 | + # Assert |
| 1225 | + self.assertIsInstance( |
| 1226 | + response.root, GetAuthenticatedExtendedCardSuccessResponse |
| 1227 | + ) |
| 1228 | + self.assertEqual(response.root.id, 'ext-card-req-1') |
| 1229 | + self.assertEqual(response.root.result, mock_extended_card) |
| 1230 | + |
| 1231 | + async def test_get_authenticated_extended_card_not_configured(self) -> None: |
| 1232 | + """Test error when authenticated extended agent card is not configured.""" |
| 1233 | + # Arrange |
| 1234 | + mock_request_handler = AsyncMock(spec=DefaultRequestHandler) |
| 1235 | + handler = JSONRPCHandler( |
| 1236 | + self.mock_agent_card, mock_request_handler, extended_agent_card=None |
| 1237 | + ) |
| 1238 | + request = GetAuthenticatedExtendedCardRequest(id='ext-card-req-2') |
| 1239 | + call_context = ServerCallContext(state={'foo': 'bar'}) |
| 1240 | + |
| 1241 | + # Act |
| 1242 | + response: GetAuthenticatedExtendedCardResponse = ( |
| 1243 | + await handler.get_authenticated_extended_card(request, call_context) |
| 1244 | + ) |
| 1245 | + |
| 1246 | + # Assert |
| 1247 | + self.assertIsInstance(response.root, JSONRPCErrorResponse) |
| 1248 | + self.assertEqual(response.root.id, 'ext-card-req-2') |
| 1249 | + self.assertIsInstance( |
| 1250 | + response.root.error, AuthenticatedExtendedCardNotConfiguredError |
| 1251 | + ) |
0 commit comments