free-code-dotnet/tests/FreeCode.Tests.Unit/Mcp/McpClientManagerTests.cs
应文浩wenhao.ying@xiaobao100.com bce2612b64 feat: 完善具体实现
2026-04-06 15:25:34 +08:00

71 lines
1.9 KiB
C#

using Xunit;
using FluentAssertions;
using NSubstitute;
using FreeCode.Core.Interfaces;
using FreeCode.Core.Models;
using FreeCode.Mcp;
using FreeCode.Tests.Unit.Helpers;
namespace FreeCode.Tests.Unit.Mcp;
public sealed class McpClientManagerTests
{
[Fact]
public void GetConnections_WithoutStateOrDiskConfig_ReturnsEmpty()
{
var manager = new McpClientManager();
manager.GetConnections().Should().BeEmpty();
}
[Fact]
public async Task ConnectServerAsync_WithUnknownServer_ThrowsKeyNotFoundException()
{
var manager = new McpClientManager();
var act = async () => await manager.ConnectServerAsync("missing");
await act.Should().ThrowAsync<KeyNotFoundException>();
}
[Fact]
public async Task DisconnectServerAsync_WithUnknownServer_CompletesWithoutThrowing()
{
var manager = new McpClientManager();
var act = async () => await manager.DisconnectServerAsync("missing");
await act.Should().NotThrowAsync();
}
[Fact]
public async Task ReconnectServerAsync_WithUnknownServer_CompletesWithoutThrowing()
{
var manager = new McpClientManager();
var act = async () => await manager.ReconnectServerAsync("missing");
await act.Should().NotThrowAsync();
}
[Fact]
public async Task AuthenticateServerAsync_WithBlankServerName_ThrowsArgumentException()
{
var manager = new McpClientManager();
var act = async () => await manager.AuthenticateServerAsync(" ");
await act.Should().ThrowAsync<ArgumentException>();
}
[Fact]
public async Task AuthenticateServerAsync_WithUnknownServer_ThrowsKeyNotFoundException()
{
var manager = new McpClientManager();
var act = async () => await manager.AuthenticateServerAsync("missing");
await act.Should().ThrowAsync<KeyNotFoundException>();
}
}