Files
tbf/TBFTests/Rig/RegisterReaders/iPerlASICReader/communication/C4/IperlHatProtocol/IperlHatFrameParserTest.cs
T

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);
}
}
}