155 lines
3.8 KiB
C#
155 lines
3.8 KiB
C#
using Xunit;
|
|
using ThreatSource.Utils;
|
|
|
|
namespace ThreatSource.Tests.Utils
|
|
{
|
|
public class LaserCodeTests
|
|
{
|
|
[Fact]
|
|
public void Constructor_InitializesPropertiesCorrectly()
|
|
{
|
|
// Arrange & Act
|
|
var laserCode = new LaserCode
|
|
{
|
|
CodeType = LaserCodeType.PRF,
|
|
CodeValue = 1234
|
|
};
|
|
|
|
// Assert
|
|
Assert.Equal(LaserCodeType.PRF, laserCode.CodeType);
|
|
Assert.Equal(1234, laserCode.CodeValue);
|
|
Assert.Empty(laserCode.Parameters);
|
|
}
|
|
|
|
[Fact]
|
|
public void Parameters_CanAddAndRetrieveValues()
|
|
{
|
|
// Arrange
|
|
var laserCode = new LaserCode
|
|
{
|
|
CodeType = LaserCodeType.PPM,
|
|
CodeValue = 5678
|
|
};
|
|
|
|
// Act
|
|
laserCode.Parameters["PulseWidth"] = 0.001;
|
|
laserCode.Parameters["PulseCount"] = 10;
|
|
|
|
// Assert
|
|
Assert.Equal(0.001, laserCode.Parameters["PulseWidth"]);
|
|
Assert.Equal(10, laserCode.Parameters["PulseCount"]);
|
|
Assert.Equal(2, laserCode.Parameters.Count);
|
|
}
|
|
|
|
[Fact]
|
|
public void Matches_ReturnsTrueForMatchingCodes()
|
|
{
|
|
// Arrange
|
|
var code1 = new LaserCode
|
|
{
|
|
CodeType = LaserCodeType.PRF,
|
|
CodeValue = 1234
|
|
};
|
|
|
|
var code2 = new LaserCode
|
|
{
|
|
CodeType = LaserCodeType.PRF,
|
|
CodeValue = 1234
|
|
};
|
|
|
|
// Act
|
|
bool result = code1.Matches(code2);
|
|
|
|
// Assert
|
|
Assert.True(result);
|
|
}
|
|
|
|
[Fact]
|
|
public void Matches_ReturnsFalseForDifferentCodeTypes()
|
|
{
|
|
// Arrange
|
|
var code1 = new LaserCode
|
|
{
|
|
CodeType = LaserCodeType.PRF,
|
|
CodeValue = 1234
|
|
};
|
|
|
|
var code2 = new LaserCode
|
|
{
|
|
CodeType = LaserCodeType.PPM,
|
|
CodeValue = 1234
|
|
};
|
|
|
|
// Act
|
|
bool result = code1.Matches(code2);
|
|
|
|
// Assert
|
|
Assert.False(result);
|
|
}
|
|
|
|
[Fact]
|
|
public void Matches_ReturnsFalseForDifferentCodeValues()
|
|
{
|
|
// Arrange
|
|
var code1 = new LaserCode
|
|
{
|
|
CodeType = LaserCodeType.PRF,
|
|
CodeValue = 1234
|
|
};
|
|
|
|
var code2 = new LaserCode
|
|
{
|
|
CodeType = LaserCodeType.PRF,
|
|
CodeValue = 5678
|
|
};
|
|
|
|
// Act
|
|
bool result = code1.Matches(code2);
|
|
|
|
// Assert
|
|
Assert.False(result);
|
|
}
|
|
|
|
[Fact]
|
|
public void Matches_ReturnsFalseForNullCode()
|
|
{
|
|
// Arrange
|
|
var code = new LaserCode
|
|
{
|
|
CodeType = LaserCodeType.PRF,
|
|
CodeValue = 1234
|
|
};
|
|
|
|
// Act
|
|
bool result = code.Matches(null);
|
|
|
|
// Assert
|
|
Assert.False(result);
|
|
}
|
|
|
|
[Fact]
|
|
public void Matches_IgnoresParameters()
|
|
{
|
|
// Arrange
|
|
var code1 = new LaserCode
|
|
{
|
|
CodeType = LaserCodeType.PRF,
|
|
CodeValue = 1234
|
|
};
|
|
code1.Parameters["PulseWidth"] = 0.001;
|
|
|
|
var code2 = new LaserCode
|
|
{
|
|
CodeType = LaserCodeType.PRF,
|
|
CodeValue = 1234
|
|
};
|
|
code2.Parameters["PulseWidth"] = 0.002; // Different parameter value
|
|
|
|
// Act
|
|
bool result = code1.Matches(code2);
|
|
|
|
// Assert
|
|
Assert.True(result); // Should still match because parameters are ignored
|
|
}
|
|
}
|
|
} |