61 lines
1.6 KiB
C#
61 lines
1.6 KiB
C#
namespace PS.IPAM.Tests.Models;
|
|
|
|
using FluentAssertions;
|
|
using PS.IPAM;
|
|
using Xunit;
|
|
|
|
public class VrfTests
|
|
{
|
|
[Fact]
|
|
public void Constructor_SetsAllProperties()
|
|
{
|
|
// Arrange
|
|
var id = 1;
|
|
var name = "VRF_PROD";
|
|
var rd = "65000:100";
|
|
var description = "Production VRF";
|
|
var sections = "1;2;3";
|
|
var editDate = new DateTime(2026, 1, 10);
|
|
var customFields = new Dictionary<string, object> { { "custom_tenant", "CustomerA" } };
|
|
|
|
// Act
|
|
var vrf = new Vrf(id, name, rd, description, sections, editDate, customFields);
|
|
|
|
// Assert
|
|
vrf.Id.Should().Be(id);
|
|
vrf.Name.Should().Be(name);
|
|
vrf.RouteDistinguisher.Should().Be(rd);
|
|
vrf.Description.Should().Be(description);
|
|
vrf.Sections.Should().Be(sections);
|
|
vrf.EditDate.Should().Be(editDate);
|
|
vrf.ExtendedData.Should().BeEquivalentTo(customFields);
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData("VRF_DEFAULT")]
|
|
[InlineData("Production_VRF")]
|
|
[InlineData("CUSTOMER_A")]
|
|
public void ToString_ReturnsVrfName(string vrfName)
|
|
{
|
|
// Arrange
|
|
var vrf = new Vrf(1, vrfName, "65000:1", "", "", null, null);
|
|
|
|
// Act
|
|
var result = vrf.ToString();
|
|
|
|
// Assert
|
|
result.Should().Be(vrfName);
|
|
}
|
|
|
|
[Fact]
|
|
public void Constructor_WithNullOptionalFields_SetsNullValues()
|
|
{
|
|
// Act
|
|
var vrf = new Vrf(1, "Test", "65000:1", "", "", null, null);
|
|
|
|
// Assert
|
|
vrf.EditDate.Should().BeNull();
|
|
vrf.ExtendedData.Should().BeNull();
|
|
}
|
|
}
|