namespace PS.IPAM.Tests.Models; using FluentAssertions; using PS.IPAM; using Xunit; public class NameserverTests { [Fact] public void Constructor_SetsAllProperties() { // Arrange var id = 1; var name = "Google DNS"; var nameServers = "8.8.8.8;8.8.4.4"; var description = "Google Public DNS"; var permissions = "{\"3\":\"2\"}"; var editDate = new DateTime(2026, 1, 10); // Act var nameserver = new Nameserver(id, name, nameServers, description, permissions, editDate); // Assert nameserver.Id.Should().Be(id); nameserver.Name.Should().Be(name); nameserver.Description.Should().Be(description); nameserver.Permissions.Should().Be(permissions); nameserver.EditDate.Should().Be(editDate); } [Fact] public void Constructor_ParsesNameservers_BySemicolon() { // Arrange var nameServersString = "8.8.8.8;8.8.4.4;1.1.1.1"; // Act var nameserver = new Nameserver(1, "Test", nameServersString, "", "", null); // Assert nameserver.NameServers.Should().HaveCount(3); nameserver.NameServers.Should().ContainInOrder("8.8.8.8", "8.8.4.4", "1.1.1.1"); } [Fact] public void Constructor_WithSingleNameserver_ReturnsArrayWithOneElement() { // Arrange var nameServersString = "8.8.8.8"; // Act var nameserver = new Nameserver(1, "Test", nameServersString, "", "", null); // Assert nameserver.NameServers.Should().HaveCount(1); nameserver.NameServers[0].Should().Be("8.8.8.8"); } [Fact] public void Constructor_WithEmptyNameservers_ReturnsArrayWithEmptyString() { // Arrange var nameServersString = ""; // Act var nameserver = new Nameserver(1, "Test", nameServersString, "", "", null); // Assert nameserver.NameServers.Should().HaveCount(1); nameserver.NameServers[0].Should().BeEmpty(); } [Fact] public void Constructor_WithNullEditDate_SetsNull() { // Act var nameserver = new Nameserver(1, "Test", "8.8.8.8", "", "", null); // Assert nameserver.EditDate.Should().BeNull(); } }