Files
ENIGProtocol/ENIGProtocol.Tests/EEProtocolTests.cs
2025-04-22 11:36:27 +09:00

52 lines
1.6 KiB
C#

using Xunit;
using ENIG;
namespace ENIGProtocol.Tests
{
public class EEProtocolTests
{
[Fact]
public void TestCRC16Calculation()
{
// 테스트 데이터
byte[] testData = new byte[] { 0x02,0x00,0xFF };
// CRC16 계산
var protocol = new EEProtocol();
ushort crc = protocol.CalculateCRC16(testData);
// 예상 결과와 비교
Assert.Equal(0x1789, crc); // 실제 예상값으로 수정 필요
}
[Fact]
public void TestPacketCreation()
{
// 패킷 생성 테스트
var protocol = new EEProtocol();
byte[] packet = protocol.CreatePacket(0x01, 0x02, new byte[] { 0x03, 0x04 });
// 패킷 구조 검증
Assert.Equal(0x02, packet[0]); // STX
Assert.Equal(0x04, packet[1]); // Length
Assert.Equal(0x01, packet[2]); // ID
Assert.Equal(0x02, packet[3]); // Command
Assert.Equal(0x03, packet[4]); // Data[0]
Assert.Equal(0x04, packet[5]); // Data[1]
}
[Fact]
public void TestPacketParsing()
{
// 패킷 파싱 테스트
var protocol = new EEProtocol();
//byte[] testPacket = new byte[] { 0x02, 0x04, 0x01, 0x02, 0x03, 0x04, 0x12, 0x34, 0x03 };
byte[] testPacket = new byte[] { 0x02, 0x02, 0x00, 0xFF, 0x89, 0x17, 0x03 };
bool result = protocol.ParsePacket(testPacket);
Assert.True(result);
}
}
}