Test Results: EventMesh A2A Protocol v2.0

Date: 2026-06-19 Version: v2.0.0 (MCP Edition + Gateway Runtime) Status: ✅ PASS

Test Suite Summary

The test suite provides comprehensive coverage across two layers: the Protocol Adaptor (JSON-RPC 2.0 & Native CloudEvents) and the Gateway Runtime (HTTP REST API, Task lifecycle, SSE streaming, AgentCard discovery).

Protocol Adaptor Tests

Test ClassScenariosResultDescription
EnhancedA2AProtocolAdaptorTest12PASSUnit tests covering core protocol logic, MCP parsing, Batching, Error handling, and A2A Standard Ops.
McpIntegrationDemoTest1PASSEnd-to-end RPC demo using MCP (JSON-RPC).
McpPatternsIntegrationTest2PASSEnd-to-end Pub/Sub and Streaming demos using MCP (JSON-RPC).
McpComprehensiveDemoTest3PASSValidation of all 3 patterns in MCP mode.
CloudEventsComprehensiveDemoTest3PASSValidation of all 3 patterns in Native CloudEvents mode.
A2ATopicFactoryTest8PASSTopic naming and parsing (request/response/status topics).

Gateway Runtime Tests

Test ClassScenariosResultDescription
TaskRegistryTest6PASSTask state machine transitions, parent-child relationships, TTL auto-cleanup.
InMemoryA2AMessageTransportTest4PASSIn-memory pub/sub delivery, subscribe/unsubscribe, wildcard topics.
A2AGatewayServiceTest8PASSGateway service layer: task submission (sync/async), response handling, cancel, status subscription.
A2AGatewayEndToEndTest6PASSIn-process end-to-end: client → gateway → transport → agent → response → client.
A2AClientServerIntegrationTest20PASSReal HTTP client-server integration: AgentCard registration, sync/async tasks, status query, cancel, list agents, SSE streaming.

Total Scenarios: 73 (All Passed)

Detailed Test Cases

1. EnhancedA2AProtocolAdaptorTest (Unit)

  • MCP Core: Validated Request/Response/Notification mapping.
  • Error Handling: Validated JSON-RPC Error object mapping.
  • Batching: Validated JSON Array splitting.
  • Legacy Removal: Confirmed legacy A2A format is no longer processed.
  • A2A Ops: Verified task/get, message/sendStream mappings.

2. A2ATopicFactoryTest (Unit)

  • Validated topic generation for request, response, and status topics.
  • Validated topic parsing (extracting namespace, agent name, task ID, topic type).
  • Verified wildcard topic patterns for gateway subscriptions.

3. TaskRegistryTest (Unit)

  • State Machine: SUBMITTED → WORKING → COMPLETED/FAILED/CANCELLED transitions.
  • Parent-Child: Task hierarchy tracking and child task listing.
  • TTL Cleanup: Verified that terminal-state tasks are removed after TTL expires.
  • Concurrency: Thread-safe state transitions under concurrent access.

4. InMemoryA2AMessageTransportTest (Unit)

  • Publish/subscribe message delivery.
  • Multiple subscribers on the same topic.
  • Unsubscribe behavior.
  • Wildcard topic matching.

5. A2AGatewayServiceTest (Integration)

  • Sync Task: submitTask → publish → handleResponse → future.complete.
  • Async Task: submitTask returns immediately, status queried separately.
  • Cancel: cancelTask transitions state and completes future with CANCELLED.
  • Race Condition: Verified put-before-publish ordering prevents lost responses.
  • Status Subscription: StatusSubscriber receives state transition callbacks.

6. A2AGatewayEndToEndTest (Integration)

  • Full flow: A2AClient → Gateway HTTP → GatewayService → Transport → Agent → Response → Client.
  • Verified task ID correlation across all components.
  • Multiple concurrent tasks.
  • Error scenarios (unknown agent, task not found).

7. A2AClientServerIntegrationTest (HTTP Integration)

  • Real HTTP: Uses Apache HttpClient to hit the real Netty server.
  • AgentCard: Registration and heartbeat via REST API.
  • Sync Task: POST /a2a/tasks?mode=sync returns completed result.
  • Async Task: POST /a2a/tasks?mode=async returns taskId, then GET /a2a/tasks/{taskId} polls status.
  • Cancel: DELETE /a2a/tasks/{taskId} cancels the task.
  • List Agents: GET /a2a/agents returns registered agent list.
  • Typed Returns: A2AClient.getTaskStatus() returns TaskResult, listAgents() returns List<String>.
  • SSE Stream: GET /a2a/tasks/{taskId}/stream receives real-time state updates via text/event-stream.

8. McpIntegrationDemoTest (Integration - RPC)

  • Simulated Client → EventMesh → Server flow.
  • Verified correlation ID linking (req-id <-> collaborationid).

9. McpPatternsIntegrationTest (Integration - Advanced)

  • Pub/Sub: Verified _topic -> subject mapping for Broadcast.
  • Streaming: Verified _seq -> seq mapping for ordered chunks.

10. McpComprehensiveDemoTest (Protocol: JSON-RPC)

  • RPC: Request/Response flow verification.
  • Pub/Sub: Broadcast to Topic routing verification.
  • Streaming: Sequence ID preservation verification.

11. CloudEventsComprehensiveDemoTest (Protocol: Native CloudEvents)

  • RPC: Verified manual construction of .req / .resp CloudEvents works.
  • Pub/Sub: Verified manual setting of subject works.
  • Streaming: Verified manual setting of seq extension works.

Environment

  • JDK: Java 8 (Source/Target 1.8), Compatible with Java 21 Runtime
  • Build System: Gradle 7.x+
  • Dependencies: Jackson 2.18+, CloudEvents SDK 3.0+, Netty 4.1+, Apache HttpClient

Conclusion

The A2A Protocol v2.0 implementation is stable, functionally complete, and ready for production deployment. It successfully supports:

  • Hybrid Architecture (MCP & CloudEvents) with all three interaction patterns (RPC, Pub/Sub, Streaming)
  • Gateway Runtime with full REST API, SSE streaming, task lifecycle management, TTL auto-cleanup, and typed Java SDK
  • 73 test scenarios across protocol and runtime layers, all passing