using Xunit; using OpenHarbor.MCP.Core.Models; namespace OpenHarbor.MCP.Core.Tests.Models; /// /// Unit tests for ServerHealthStatus model following TDD approach. /// Tests server health representation. /// public class ServerHealthStatusTests { [Fact] public void ServerHealthStatus_Healthy_CreatesSuccessfully() { // Arrange var now = DateTime.UtcNow; // Act var status = new ServerHealthStatus { ServerId = "server-1", ServerName = "Test Server", IsHealthy = true, LastCheck = now, ResponseTime = TimeSpan.FromMilliseconds(25) }; // Assert Assert.Equal("server-1", status.ServerId); Assert.Equal("Test Server", status.ServerName); Assert.True(status.IsHealthy); Assert.Equal(now, status.LastCheck); Assert.Equal(25, status.ResponseTime?.TotalMilliseconds); Assert.Null(status.ErrorMessage); } [Fact] public void ServerHealthStatus_Unhealthy_IncludesErrorMessage() { // Arrange & Act var status = new ServerHealthStatus { ServerId = "server-2", IsHealthy = false, LastCheck = DateTime.UtcNow, ErrorMessage = "Connection timeout" }; // Assert Assert.False(status.IsHealthy); Assert.Equal("Connection timeout", status.ErrorMessage); Assert.Null(status.ResponseTime); } [Fact] public void ServerHealthStatus_DefaultState_IsNotHealthy() { // Arrange & Act var status = new ServerHealthStatus(); // Assert Assert.False(status.IsHealthy); Assert.Null(status.ErrorMessage); Assert.Null(status.ResponseTime); } }