// Copyright (c) Microsoft. All rights reserved. using System.Text.Json; namespace Microsoft.Agents.AI.A2A.UnitTests; /// /// Unit tests for the class. /// public sealed class A2AAgentSessionTests { [Fact] public void Constructor_RoundTrip_SerializationPreservesState() { // Arrange const string ContextId = "context-rt-001"; const string TaskId = "task-rt-002"; A2AAgentSession originalSession = new() { ContextId = ContextId, TaskId = TaskId }; // Act JsonElement serialized = originalSession.Serialize(); A2AAgentSession deserializedSession = A2AAgentSession.Deserialize(serialized); // Assert Assert.Equal(originalSession.ContextId, deserializedSession.ContextId); Assert.Equal(originalSession.TaskId, deserializedSession.TaskId); } [Fact] public void Constructor_RoundTrip_SerializationPreservesStateBag() { // Arrange A2AAgentSession originalSession = new() { ContextId = "ctx-1", TaskId = "task-1" }; originalSession.StateBag.SetValue("testKey", "testValue"); // Act JsonElement serialized = originalSession.Serialize(); A2AAgentSession deserializedSession = A2AAgentSession.Deserialize(serialized); // Assert Assert.Equal("ctx-1", deserializedSession.ContextId); Assert.Equal("task-1", deserializedSession.TaskId); Assert.True(deserializedSession.StateBag.TryGetValue("testKey", out var value)); Assert.Equal("testValue", value); } }