csharp-sdk/tests/ModelContextProtocol.Tests/Protocol/LoggingMessageNotificationParamsTests.cs
Copilot 571e4dc127
Make LoggingMessageNotificationParams.Data required per MCP spec (#1353)
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>
2026-02-23 11:37:35 -05:00

49 lines
2 KiB
C#

using ModelContextProtocol.Protocol;
using System.Text.Json;
using System.Text.Json.Nodes;
namespace ModelContextProtocol.Tests.Protocol;
public static class LoggingMessageNotificationParamsTests
{
[Fact]
public static void LoggingMessageNotificationParams_SerializationRoundTrip_PreservesAllProperties()
{
var original = new LoggingMessageNotificationParams
{
Level = LoggingLevel.Warning,
Logger = "MyApp.Services",
Data = JsonDocument.Parse("\"Something went wrong\"").RootElement.Clone(),
Meta = new JsonObject { ["key"] = "value" }
};
string json = JsonSerializer.Serialize(original, McpJsonUtilities.DefaultOptions);
var deserialized = JsonSerializer.Deserialize<LoggingMessageNotificationParams>(json, McpJsonUtilities.DefaultOptions);
Assert.NotNull(deserialized);
Assert.Equal(LoggingLevel.Warning, deserialized.Level);
Assert.Equal("MyApp.Services", deserialized.Logger);
Assert.Equal("Something went wrong", deserialized.Data.GetString());
Assert.NotNull(deserialized.Meta);
Assert.Equal("value", (string)deserialized.Meta["key"]!);
}
[Fact]
public static void LoggingMessageNotificationParams_SerializationRoundTrip_WithMinimalProperties()
{
var original = new LoggingMessageNotificationParams
{
Level = LoggingLevel.Error,
Data = JsonDocument.Parse("\"error occurred\"").RootElement.Clone(),
};
string json = JsonSerializer.Serialize(original, McpJsonUtilities.DefaultOptions);
var deserialized = JsonSerializer.Deserialize<LoggingMessageNotificationParams>(json, McpJsonUtilities.DefaultOptions);
Assert.NotNull(deserialized);
Assert.Equal(LoggingLevel.Error, deserialized.Level);
Assert.Null(deserialized.Logger);
Assert.Equal("error occurred", deserialized.Data.GetString());
Assert.Null(deserialized.Meta);
}
}