namespace PS.IPAM.Tests.Models; using FluentAssertions; using PS.IPAM; using Xunit; public class VlanTests { [Fact] public void Constructor_SetsAllProperties() { // Arrange var vlanId = 100; var domainId = 1; var name = "Production VLAN"; var number = 100; var description = "Production network VLAN"; var editDate = new DateTime(2026, 1, 15); var customerId = 50; var customFields = new Dictionary { { "custom_location", "DC1" } }; // Act var vlan = new Vlan(vlanId, domainId, name, number, description, editDate, customerId, customFields); // Assert vlan.Id.Should().Be(vlanId); vlan.VlanId.Should().Be(vlanId); vlan.DomainId.Should().Be(domainId); vlan.Name.Should().Be(name); vlan.Number.Should().Be(number); vlan.Description.Should().Be(description); vlan.EditDate.Should().Be(editDate); vlan.CustomerId.Should().Be(customerId); vlan.ExtendedData.Should().BeEquivalentTo(customFields); } [Fact] public void Id_And_VlanId_AreSameValue() { // Arrange var vlanId = 200; // Act var vlan = new Vlan(vlanId, 1, "Test", 200, "", null, 0, null); // Assert vlan.Id.Should().Be(vlan.VlanId); } [Theory] [InlineData(1)] [InlineData(100)] [InlineData(4094)] public void ToString_ReturnsVlanNumber(int vlanNumber) { // Arrange var vlan = new Vlan(1, 1, "Test", vlanNumber, "", null, 0, null); // Act var result = vlan.ToString(); // Assert result.Should().Be(vlanNumber.ToString()); } [Fact] public void Constructor_WithNullOptionalFields_SetsNullValues() { // Act var vlan = new Vlan(1, 1, "Test", 10, "", null, 0, null); // Assert vlan.EditDate.Should().BeNull(); vlan.ExtendedData.Should().BeNull(); } }