Files
CardReaderTester/CardReaderTester.Test/GetParameterResponse_Test.cs
Martijn Scheepers 323711e965 Add debug command
2025-04-30 11:51:00 +02:00

112 lines
5.1 KiB
C#

using CardReaderTester.Protocol;
using CardReaderTester.Protocol.Enums;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CardReaderTester.Test
{
[TestClass]
public class GetParameterResponse_Test
{
[TestMethod]
public void GetParameterResponse_SoftwareVersion_Parse()
{
byte[] bytes = { 0x7E, 0x08, 0x02, 0x00, 0x01, 0x15, 0x30, 0x2E, 0x31, 0x2D, 0x32, 0x36, 0x2D, 0x67, 0x36, 0x33, 0x63, 0x63, 0x36, 0x34, 0x31, 0x2D, 0x64, 0x69, 0x72, 0x74, 0x79, 0x86, 0x7F };
IRPProtocol? result = RPMessage.ParseMessage(bytes);
Assert.IsNotNull(result);
Assert.IsInstanceOfType<GetParameterResponse>(result);
GetParameterResponse getParameter = (GetParameterResponse)result;
Assert.AreEqual(0x02, getParameter.SenderAddress);
Assert.AreEqual(0x00, getParameter.ReceiverAddress);
Assert.AreEqual(RPParamterType.SOFTWAREVERSION, getParameter.ParamterType);
Assert.AreEqual(21, getParameter.Data.Len);
Assert.AreEqual("0.1-26-g63cc641-dirty", getParameter.Data.GetDataString());
CollectionAssert.AreEqual(new byte[] { 0x30, 0x2E, 0x31, 0x2D, 0x32, 0x36, 0x2D, 0x67, 0x36, 0x33, 0x63, 0x63, 0x36, 0x34, 0x31, 0x2D, 0x64, 0x69, 0x72, 0x74, 0x79 }, getParameter.Data.Data);
Assert.AreEqual("GetParameterResponse: sender:2 receiver:0 Type:SOFTWAREVERSION Data:<len:21 data:30-2E-31-2D-32-36-2D-67-36-33-63-63-36-34-31-2D-64-69-72-74-79>", getParameter.LogString());
}
[TestMethod]
public void GetParameterResponse_UniqueID_Parse()
{
byte[] bytes = { 0x7E, 0x08, 0x02, 0x00, 0x02, 0x10, 0x45, 0x34, 0x36, 0x34, 0x33, 0x34, 0x43, 0x34, 0x35, 0x46, 0x33, 0x30, 0x35, 0x36, 0x32, 0x41, 0x09, 0x7F };
IRPProtocol? result = RPMessage.ParseMessage(bytes);
Assert.IsNotNull(result);
Assert.IsInstanceOfType<GetParameterResponse>(result);
GetParameterResponse getParameter = (GetParameterResponse)result;
Assert.AreEqual(0x02, getParameter.SenderAddress);
Assert.AreEqual(0x00, getParameter.ReceiverAddress);
Assert.AreEqual(RPParamterType.UNIQUEID, getParameter.ParamterType);
Assert.AreEqual(16, getParameter.Data.Len);
Assert.AreEqual("E46434C45F30562A", getParameter.Data.GetDataString());
CollectionAssert.AreEqual(new byte[] { 0x045, 0x034, 0x036, 0x034, 0x033, 0x034, 0x043, 0x034, 0x035, 0x046, 0x033, 0x030, 0x035, 0x036, 0x032, 0x041 }, getParameter.Data.Data);
Assert.AreEqual("GetParameterResponse: sender:2 receiver:0 Type:UNIQUEID Data:<len:16 data:45-34-36-34-33-34-43-34-35-46-33-30-35-36-32-41>", getParameter.LogString());
}
[TestMethod]
public void GetParameterResponse_SoftwareVersion_Create()
{
GetParameterResponse response = new()
{
SenderAddress = 0x08,
ReceiverAddress = 0x00,
ParamterType = RPParamterType.SOFTWAREVERSION,
Data = new("123")
};
Assert.AreEqual(0x08, response.SenderAddress);
Assert.AreEqual(0x00, response.ReceiverAddress);
Assert.AreEqual(RPParamterType.SOFTWAREVERSION, response.ParamterType);
//Debug.WriteLine(BitConverter.ToString(response.CreateMessage().ToArray()));
CollectionAssert.AreEqual(new byte[] { 0x01, 0x03, 0x31, 0x32, 0x33 }, response.CreateMessage());
//Debug.WriteLine(BitConverter.ToString(RPMessage.CreateFrame(response)));
CollectionAssert.AreEqual(new byte[] { 0x7E, 0x08, 0x08, 0x00, 0x01, 0x03, 0x31, 0x32, 0x33, 0xEA, 0x7F }, RPMessage.CreateFrame(response));
Assert.AreEqual("GetParameterResponse: sender:8 receiver:0 Type:SOFTWAREVERSION Data:<len:3 data:31-32-33>", response.LogString());
}
[TestMethod]
public void GetParameterResponse_ByteStuffing_Create()
{
GetParameterResponse response = new()
{
SenderAddress = 0x08,
ReceiverAddress = 0x00,
ParamterType = RPParamterType.MIFAREKEY_B,
Data = new([0x7E, 0x7D])
};
Assert.AreEqual(0x08, response.SenderAddress);
Assert.AreEqual(0x00, response.ReceiverAddress);
Assert.AreEqual(RPParamterType.MIFAREKEY_B, response.ParamterType);
//Debug.WriteLine(BitConverter.ToString(response.CreateMessage().ToArray()));
CollectionAssert.AreEqual(new byte[] { 0x04, 0x02, 0x7E, 0x7D }, response.CreateMessage());
//Debug.WriteLine(BitConverter.ToString(RPMessage.CreateFrame(response)));
CollectionAssert.AreEqual(new byte[] { 0x7E, 0x08, 0x08, 0x00, 0x04, 0x02, 0x7D, 0x5E, 0x7D, 0x5D, 0x22, 0x7F }, RPMessage.CreateFrame(response));
Assert.AreEqual("GetParameterResponse: sender:8 receiver:0 Type:MIFAREKEY_B Data:<len:2 data:7E-7D>", response.LogString());
}
}
}