merge with latest main

This commit is contained in:
SergeyMenshykh
2026-02-13 15:08:47 +00:00
Unverified
115 changed files with 5641 additions and 4360 deletions
@@ -15,7 +15,7 @@ public sealed class DurableAgentSessionTests
JsonElement serializedSession = session.Serialize();
// Expected format: "{\"sessionId\":\"@dafx-test-agent@<random-key>\"}"
string expectedSerializedSession = $"{{\"sessionId\":\"@dafx-{sessionId.Name}@{sessionId.Key}\"}}";
string expectedSerializedSession = $"{{\"sessionId\":\"@dafx-{sessionId.Name}@{sessionId.Key}\",\"stateBag\":{{}}}}";
Assert.Equal(expectedSerializedSession, serializedSession.ToString());
DurableAgentSession deserializedSession = DurableAgentSession.Deserialize(serializedSession);
@@ -33,11 +33,47 @@ public sealed class DurableAgentSessionTests
string serializedSession = JsonSerializer.Serialize(session, typeof(DurableAgentSession));
// Expected format: "{\"sessionId\":\"@dafx-test-agent@<random-key>\"}"
string expectedSerializedSession = $"{{\"sessionId\":\"@dafx-{sessionId.Name}@{sessionId.Key}\"}}";
string expectedSerializedSession = $"{{\"sessionId\":\"@dafx-{sessionId.Name}@{sessionId.Key}\",\"stateBag\":{{}}}}";
Assert.Equal(expectedSerializedSession, serializedSession);
DurableAgentSession? deserializedSession = JsonSerializer.Deserialize<DurableAgentSession>(serializedSession);
Assert.NotNull(deserializedSession);
Assert.Equal(sessionId, deserializedSession.SessionId);
}
[Fact]
public void BuiltInSerialization_RoundTrip_PreservesStateBag()
{
// Arrange
AgentSessionId sessionId = AgentSessionId.WithRandomKey("test-agent");
DurableAgentSession session = new(sessionId);
session.StateBag.SetValue("durableKey", "durableValue");
// Act
JsonElement serializedSession = session.Serialize();
DurableAgentSession deserializedSession = DurableAgentSession.Deserialize(serializedSession);
// Assert
Assert.Equal(sessionId, deserializedSession.SessionId);
Assert.True(deserializedSession.StateBag.TryGetValue<string>("durableKey", out var value));
Assert.Equal("durableValue", value);
}
[Fact]
public void STJSerialization_RoundTrip_PreservesStateBag()
{
// Arrange
AgentSessionId sessionId = AgentSessionId.WithRandomKey("test-agent");
DurableAgentSession session = new(sessionId);
session.StateBag.SetValue("stjKey", "stjValue");
// Act
string serializedSession = JsonSerializer.Serialize(session, typeof(DurableAgentSession));
DurableAgentSession? deserializedSession = JsonSerializer.Deserialize<DurableAgentSession>(serializedSession);
// Assert
Assert.NotNull(deserializedSession);
Assert.True(deserializedSession.StateBag.TryGetValue<string>("stjKey", out var value));
Assert.Equal("stjValue", value);
}
}