109 lines
2.6 KiB
C#
109 lines
2.6 KiB
C#
namespace AMWD.Protocols.Modbus.Tests.Common.Models
|
|
{
|
|
[TestClass]
|
|
public class DiscreteInputTest
|
|
{
|
|
[TestMethod]
|
|
public void ShouldSuccessfulCompare()
|
|
{
|
|
// Arrange
|
|
var input1 = new DiscreteInput { Address = 123, HighByte = 0xFF, LowByte = 0x00 };
|
|
var input2 = new DiscreteInput { Address = 123, HighByte = 0xFF, LowByte = 0x00 };
|
|
|
|
// Act
|
|
bool success = input1.Equals(input2);
|
|
|
|
// Assert
|
|
Assert.IsTrue(success);
|
|
}
|
|
|
|
[TestMethod]
|
|
public void ShouldFailOnInstanceComparing()
|
|
{
|
|
// Arrange
|
|
var coil1 = new Coil { Address = 123, Value = true };
|
|
var coil2 = new { Address = 123, HighByte = 0xFF };
|
|
|
|
// Act
|
|
bool success = coil1.Equals(coil2);
|
|
|
|
// Assert
|
|
Assert.IsFalse(success);
|
|
}
|
|
|
|
[TestMethod]
|
|
public void ShouldFailOnTypeComparing()
|
|
{
|
|
// Arrange
|
|
var input1 = new DiscreteInput { Address = 123, HighByte = 0xFF, LowByte = 0x00 };
|
|
var input2 = new Coil { Address = 123, HighByte = 0xFF, LowByte = 0x00 };
|
|
|
|
// Act
|
|
bool success = input1.Equals(input2);
|
|
|
|
// Assert
|
|
Assert.IsFalse(success);
|
|
}
|
|
|
|
[TestMethod]
|
|
public void ShouldFailOnAddressComparing()
|
|
{
|
|
// Arrange
|
|
var input1 = new DiscreteInput { Address = 123, HighByte = 0xFF, LowByte = 0x00 };
|
|
var input2 = new DiscreteInput { Address = 321, HighByte = 0xFF, LowByte = 0x00 };
|
|
|
|
// Act
|
|
bool success = input1.Equals(input2);
|
|
|
|
// Assert
|
|
Assert.IsFalse(success);
|
|
}
|
|
|
|
[TestMethod]
|
|
public void ShouldFailOnHighByteComparing()
|
|
{
|
|
// Arrange
|
|
var input1 = new DiscreteInput { Address = 123, HighByte = 0xFF, LowByte = 0x00 };
|
|
var input2 = new DiscreteInput { Address = 123, HighByte = 0x00, LowByte = 0x00 };
|
|
|
|
// Act
|
|
bool success = input1.Equals(input2);
|
|
|
|
// Assert
|
|
Assert.IsFalse(success);
|
|
}
|
|
|
|
[TestMethod]
|
|
public void ShouldFailOnLowByteComparing()
|
|
{
|
|
// Arrange
|
|
var input1 = new DiscreteInput { Address = 123, HighByte = 0xFF, LowByte = 0x00 };
|
|
var input2 = new DiscreteInput { Address = 123, HighByte = 0xFF, LowByte = 0xFF };
|
|
|
|
// Act
|
|
bool success = input1.Equals(input2);
|
|
|
|
// Assert
|
|
Assert.IsFalse(success);
|
|
}
|
|
|
|
[TestMethod]
|
|
[DataRow(0xFF)]
|
|
[DataRow(0x00)]
|
|
public void ShouldPrintPrettyString(int highByte)
|
|
{
|
|
// Arrange
|
|
var input = new DiscreteInput { Address = 123, HighByte = (byte)highByte, LowByte = 0x00 };
|
|
|
|
// Act
|
|
string str = input.ToString();
|
|
|
|
// Assert
|
|
if (highByte > 0)
|
|
Assert.AreEqual("Discrete Input #123 | ON", str);
|
|
else
|
|
Assert.AreEqual("Discrete Input #123 | OFF", str);
|
|
}
|
|
}
|
|
}
|