78 lines
2.0 KiB
C#
78 lines
2.0 KiB
C#
namespace PS.IPAM.Tests.Models;
|
|
|
|
using FluentAssertions;
|
|
using PS.IPAM;
|
|
using Xunit;
|
|
|
|
public class TagTests
|
|
{
|
|
[Fact]
|
|
public void Constructor_SetsAllProperties()
|
|
{
|
|
// Arrange
|
|
var id = 1;
|
|
var type = "Used";
|
|
var showTag = true;
|
|
var bgColor = "#5cb85c";
|
|
var fgColor = "#ffffff";
|
|
var compress = "Yes";
|
|
var locked = "No";
|
|
var updateTag = true;
|
|
|
|
// Act
|
|
var tag = new Tag(id, type, showTag, bgColor, fgColor, compress, locked, updateTag);
|
|
|
|
// Assert
|
|
tag.Id.Should().Be(id);
|
|
tag.Type.Should().Be(type);
|
|
tag.ShowTag.Should().Be(showTag);
|
|
tag.BGColor.Should().Be(bgColor);
|
|
tag.FGColor.Should().Be(fgColor);
|
|
tag.Compress.Should().BeTrue();
|
|
tag.Locked.Should().BeFalse();
|
|
tag.UpdateTag.Should().Be(updateTag);
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData("Yes", true)]
|
|
[InlineData("No", false)]
|
|
[InlineData("", false)]
|
|
[InlineData("yes", false)] // Case sensitive
|
|
[InlineData("true", false)] // Only "Yes" is true
|
|
public void StringToBool_ConvertsCorrectly(string input, bool expected)
|
|
{
|
|
// The StringToBool is private, so we test through the constructor
|
|
// Using Compress field which uses StringToBool
|
|
var tag = new Tag(1, "Test", false, "", "", input, "No", false);
|
|
|
|
tag.Compress.Should().Be(expected);
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData("Used")]
|
|
[InlineData("Available")]
|
|
[InlineData("Reserved")]
|
|
[InlineData("DHCP")]
|
|
public void ToString_ReturnsTagType(string tagType)
|
|
{
|
|
// Arrange
|
|
var tag = new Tag(1, tagType, false, "", "", "No", "No", false);
|
|
|
|
// Act
|
|
var result = tag.ToString();
|
|
|
|
// Assert
|
|
result.Should().Be(tagType);
|
|
}
|
|
|
|
[Fact]
|
|
public void Locked_WithYes_IsTrue()
|
|
{
|
|
// Arrange & Act
|
|
var tag = new Tag(1, "Test", false, "", "", "No", "Yes", false);
|
|
|
|
// Assert
|
|
tag.Locked.Should().BeTrue();
|
|
}
|
|
}
|