77 lines
2.0 KiB
C#
77 lines
2.0 KiB
C#
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<string, object> { { "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();
|
|
}
|
|
}
|