namespace PS.IPAM.Tests.Models; using FluentAssertions; using PS.IPAM; using Xunit; public class SectionTests { [Fact] public void Constructor_SetsAllProperties() { // Arrange var id = 1; var name = "Production"; var description = "Production networks section"; var masterSectionId = 0; var permissions = "{\"3\":\"2\"}"; var strictMode = true; var subnetOrdering = "subnet,asc"; var order = 1; var editDate = new DateTime(2026, 1, 5); var showSubnet = true; var showVlan = true; var showVRF = false; var showSupernetOnly = false; var dnsId = 1; // Act var section = new Section( id, name, description, masterSectionId, permissions, strictMode, subnetOrdering, order, editDate, showSubnet, showVlan, showVRF, showSupernetOnly, dnsId ); // Assert section.Id.Should().Be(id); section.Name.Should().Be(name); section.Description.Should().Be(description); section.MasterSectionId.Should().Be(masterSectionId); section.Permissions.Should().Be(permissions); section.StrictMode.Should().Be(strictMode); section.SubnetOrdering.Should().Be(subnetOrdering); section.Order.Should().Be(order); section.EditDate.Should().Be(editDate); section.ShowSubnet.Should().Be(showSubnet); section.ShowVlan.Should().Be(showVlan); section.ShowVRF.Should().Be(showVRF); section.ShowSupernetOnly.Should().Be(showSupernetOnly); section.DNSId.Should().Be(dnsId); } [Theory] [InlineData("Production")] [InlineData("Development")] [InlineData("DMZ")] public void ToString_ReturnsSectionName(string sectionName) { // Arrange var section = new Section(1, sectionName, "", 0, "", false, "", 0, null, false, false, false, false, 0); // Act var result = section.ToString(); // Assert result.Should().Be(sectionName); } [Fact] public void Constructor_WithNullEditDate_SetsNull() { // Act var section = new Section(1, "Test", "", 0, "", false, "", 0, null, false, false, false, false, 0); // Assert section.EditDate.Should().BeNull(); } }