using Xunit; using OpenHarbor.MCP.Core.Models; namespace OpenHarbor.MCP.Core.Tests.Models; /// /// Unit tests for ServerInfo model following TDD approach. /// Tests server metadata representation. /// public class ServerInfoTests { [Fact] public void ServerInfo_WithValidData_CreatesSuccessfully() { // Arrange & Act var serverInfo = new ServerInfo { Id = "test-server", Name = "Test Server", IsHealthy = true, LastHealthCheck = DateTime.UtcNow, ResponseTime = TimeSpan.FromMilliseconds(50) }; // Assert Assert.Equal("test-server", serverInfo.Id); Assert.Equal("Test Server", serverInfo.Name); Assert.True(serverInfo.IsHealthy); Assert.NotNull(serverInfo.LastHealthCheck); Assert.Equal(50, serverInfo.ResponseTime?.TotalMilliseconds); } [Fact] public void ServerInfo_DefaultState_IsNotHealthy() { // Arrange & Act var serverInfo = new ServerInfo(); // Assert Assert.False(serverInfo.IsHealthy); Assert.Null(serverInfo.LastHealthCheck); } [Fact] public void ServerInfo_WithMetadata_StoresAdditionalData() { // Arrange var metadata = new Dictionary { { "version", "1.0.0" }, { "region", "us-east" } }; // Act var serverInfo = new ServerInfo { Id = "server-1", Metadata = metadata }; // Assert Assert.NotNull(serverInfo.Metadata); Assert.Equal("1.0.0", serverInfo.Metadata["version"]); Assert.Equal("us-east", serverInfo.Metadata["region"]); } }