116 lines
5.1 KiB
C#
116 lines
5.1 KiB
C#
using JetBrains.Annotations;
|
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
|
using TBF.Rig.TestMethods.iPerlCommunication.communication.C4.hexLogger;
|
|
using TBF.Rig.TestMethods.iPerlCommunication.communication.C4.IperlHatProtocol;
|
|
using TBF.Rig.TestMethods.iPerlCommunication.communication.C4.protocolCommons;
|
|
|
|
|
|
namespace TBFTests.Rig.RegisterReaders.iPerlASICReader.communication.C4.IperlHatProtocol
|
|
{
|
|
[TestClass]
|
|
[TestSubject(typeof(IperlHatFrameParser))]
|
|
public class IperlHatFrameParserTest
|
|
{
|
|
[TestMethod]
|
|
public void ParseTest_FactoryID()
|
|
{
|
|
IperlHatFrameParser parser = new IperlHatFrameParser();
|
|
byte[] result1 = HexFormatter.HexStringToByteArray("53 52 0F 01 31 30 30 31 30 34 30 35 31 00 0D");
|
|
IperlHatResponse iperlHatResponse = parser.Parse(result1);
|
|
|
|
Assert.IsNotNull(iperlHatResponse);
|
|
Assert.IsTrue(iperlHatResponse.IsOk);
|
|
Assert.IsTrue(iperlHatResponse.Payload.Length > 0);
|
|
Assert.AreEqual("100104051", iperlHatResponse.GetAsciiPayload());
|
|
}
|
|
|
|
[TestMethod]
|
|
public void ParseTest_VERS()
|
|
{
|
|
IperlHatFrameParser parser = new IperlHatFrameParser();
|
|
byte[] versionResult = HexFormatter.HexStringToByteArray("3F 76 65 72 73 3A 20 48 61 72 72 79 20 54 3A 42 38 30 30 2C 20 56 3A 30 36 2E 30 36 2E 30 31 2C 20 46 57 3A 31 39 30 32 31 35 2C 20 37 45 43 45 2C 20 42 31 2E 36 2E 30 31 2C 20 48 57 3A 34 2C 20 53 65 72 69 61 6C 3A 30 0D");
|
|
IperlHatResponse iperlHatResponse = parser.Parse(versionResult);
|
|
|
|
Assert.IsNotNull(iperlHatResponse);
|
|
Assert.IsTrue(iperlHatResponse.IsOk);
|
|
Assert.IsTrue(iperlHatResponse.Payload.Length > 0);
|
|
Assert.AreEqual(IperlHatProtocolConstants.Question, iperlHatResponse.Control);
|
|
|
|
Assert.AreEqual("vers: Harry T:B800, V:06.06.01, FW:190215, 7ECE, B1.6.01, HW:4, Serial:0", iperlHatResponse.GetAsciiPayload());
|
|
}
|
|
|
|
|
|
[TestMethod]
|
|
public void ParseTest_Response_OK ()
|
|
{
|
|
IperlHatFrameParser parser = new IperlHatFrameParser();
|
|
byte[] versionResult = HexFormatter.HexStringToByteArray("53 52 05 01 0D");
|
|
IperlHatResponse iperlHatResponse = parser.Parse(versionResult);
|
|
|
|
Assert.IsNotNull(iperlHatResponse);
|
|
Assert.IsTrue(iperlHatResponse.IsOk);
|
|
Assert.AreEqual(null, iperlHatResponse.GetAsciiPayload());
|
|
}
|
|
|
|
[TestMethod]
|
|
public void ParseTest_Response_NOK ()
|
|
{
|
|
IperlHatFrameParser parser = new IperlHatFrameParser();
|
|
byte[] versionResult = HexFormatter.HexStringToByteArray("53 52 05 FD 0D");
|
|
IperlHatResponse iperlHatResponse = parser.Parse(versionResult);
|
|
|
|
Assert.IsNotNull(iperlHatResponse);
|
|
Assert.IsFalse(iperlHatResponse.IsOk);
|
|
Assert.AreEqual(null, iperlHatResponse.GetAsciiPayload());
|
|
}
|
|
|
|
[TestMethod]
|
|
public void ParseTest_Response_State ()
|
|
{
|
|
IperlHatFrameParser parser = new IperlHatFrameParser();
|
|
// IDLE
|
|
byte[] versionResult = HexFormatter.HexStringToByteArray("53 52 06 01 01 0D");
|
|
IperlHatResponse iperlHatResponse = parser.Parse(versionResult);
|
|
|
|
Assert.IsNotNull(iperlHatResponse);
|
|
Assert.IsFalse(iperlHatResponse.IsOk);
|
|
|
|
ProtocolStatuses status = iperlHatResponse.GetResponse<ProtocolStatuses>(out bool isOk);
|
|
Assert.AreEqual(true, isOk);
|
|
Assert.AreEqual(ProtocolStatuses.Idle, status);
|
|
|
|
//ACTIVE
|
|
versionResult = HexFormatter.HexStringToByteArray("53 52 06 01 02 0D");
|
|
iperlHatResponse = parser.Parse(versionResult);
|
|
|
|
Assert.IsNotNull(iperlHatResponse);
|
|
Assert.IsFalse(iperlHatResponse.IsOk);
|
|
|
|
status = iperlHatResponse.GetResponse<ProtocolStatuses>(out isOk);
|
|
Assert.AreEqual(true, isOk);
|
|
Assert.AreEqual(ProtocolStatuses.Active, status);
|
|
|
|
//EndOfLife
|
|
versionResult = HexFormatter.HexStringToByteArray("53 52 06 01 03 0D");
|
|
iperlHatResponse = parser.Parse(versionResult);
|
|
|
|
Assert.IsNotNull(iperlHatResponse);
|
|
Assert.IsFalse(iperlHatResponse.IsOk);
|
|
|
|
status = iperlHatResponse.GetResponse<ProtocolStatuses>(out isOk);
|
|
Assert.AreEqual(true, isOk);
|
|
Assert.AreEqual(ProtocolStatuses.EndOfLife, status);
|
|
|
|
//MeterTest
|
|
versionResult = HexFormatter.HexStringToByteArray("53 52 06 01 04 0D");
|
|
iperlHatResponse = parser.Parse(versionResult);
|
|
|
|
Assert.IsNotNull(iperlHatResponse);
|
|
Assert.IsFalse(iperlHatResponse.IsOk);
|
|
|
|
status = iperlHatResponse.GetResponse<ProtocolStatuses>(out isOk);
|
|
Assert.AreEqual(true, isOk);
|
|
Assert.AreEqual(ProtocolStatuses.MeterTest, status);
|
|
}
|
|
}
|
|
} |