csharp-sdk/tests/ModelContextProtocol.AspNetCore.Tests/HttpServerTransportOptionsTests.cs
pardhu c6a97d94d6
Add HttpServerSessionMode for hybrid stateful/stateless HTTP serving (#1796)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Jeff Handley <jeffhandley@users.noreply.github.com>
2026-08-12 23:36:36 -07:00

68 lines
2.3 KiB
C#

namespace ModelContextProtocol.AspNetCore.Tests;
public class HttpServerTransportOptionsTests
{
[Fact]
public void SessionMode_DefaultsToStateless()
{
var options = new HttpServerTransportOptions();
Assert.Equal(HttpServerSessionMode.Stateless, options.SessionMode);
Assert.True(options.Stateless);
}
[Theory]
[InlineData(true, HttpServerSessionMode.Stateless)]
[InlineData(false, HttpServerSessionMode.Stateful)]
public void SettingStateless_SelectsEquivalentSessionMode(bool stateless, HttpServerSessionMode expected)
{
var options = new HttpServerTransportOptions { Stateless = stateless };
Assert.Equal(stateless, options.Stateless);
Assert.Equal(expected, options.SessionMode);
}
[Theory]
[InlineData(HttpServerSessionMode.Stateless, true)]
[InlineData(HttpServerSessionMode.Stateful, false)]
public void ReadingStateless_ReflectsSessionMode(HttpServerSessionMode sessionMode, bool expected)
{
var options = new HttpServerTransportOptions { SessionMode = sessionMode };
Assert.Equal(expected, options.Stateless);
}
[Fact]
public void ReadingStateless_ReturnsFalseForHybridMode()
{
var options = new HttpServerTransportOptions
{
SessionMode = HttpServerSessionMode.StatefulForInitializeClients,
};
Assert.False(options.Stateless);
Assert.Equal(HttpServerSessionMode.StatefulForInitializeClients, options.SessionMode);
}
[Fact]
public void AssigningBothProperties_DoesNotThrow_AndLastAssignmentWins()
{
var options = new HttpServerTransportOptions();
options.Stateless = false;
Assert.False(options.Stateless);
Assert.Equal(HttpServerSessionMode.Stateful, options.SessionMode);
options.SessionMode = HttpServerSessionMode.StatefulForInitializeClients;
Assert.False(options.Stateless);
Assert.Equal(HttpServerSessionMode.StatefulForInitializeClients, options.SessionMode);
options.Stateless = true;
Assert.True(options.Stateless);
Assert.Equal(HttpServerSessionMode.Stateless, options.SessionMode);
options.SessionMode = HttpServerSessionMode.Stateful;
Assert.False(options.Stateless);
Assert.Equal(HttpServerSessionMode.Stateful, options.SessionMode);
}
}