112 lines
5.1 KiB
C#
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());
|
|
}
|
|
}
|
|
}
|