25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

48 lines
1.7 KiB

  1. using JT808.Protocol.Extensions;
  2. using JT808.Protocol.Interfaces;
  3. using JT808.Protocol.Internal;
  4. using JT808.Protocol.MessageBody;
  5. using JT808.Protocol.Test.MessageBody.JT808_0x0701BodiesImpl;
  6. using System.Reflection;
  7. using Xunit;
  8. namespace JT808.Protocol.Test.MessageBody
  9. {
  10. public class JT808_0x0701Test
  11. {
  12. JT808Serializer JT808Serializer;
  13. public JT808_0x0701Test()
  14. {
  15. IJT808Config jT808Config = new DefaultGlobalConfig();
  16. jT808Config.Register(Assembly.GetExecutingAssembly());
  17. JT808Serializer = new JT808Serializer(jT808Config);
  18. }
  19. [Fact]
  20. public void Test1()
  21. {
  22. JT808_0x0701 jT808_0X0701 = new JT808_0x0701();
  23. var body = new JT808_0x0701TestBodiesImpl
  24. {
  25. Id = 333,
  26. UserName = "汉smallchi"
  27. };
  28. jT808_0X0701.ElectronicContentObj = body;
  29. var hex = JT808Serializer.Serialize(jT808_0X0701).ToHexString();
  30. Assert.Equal("000000100000014D000ABABA736D616C6C636869", hex);
  31. }
  32. [Fact]
  33. public void Test2()
  34. {
  35. byte[] bytes = "000000100000014D000ABABA736D616C6C636869".ToHexBytes();
  36. JT808_0x0701 jT808_0X0701 = JT808Serializer.Deserialize<JT808_0x0701>(bytes);
  37. Assert.Equal((uint)16, jT808_0X0701.ElectronicWaybillLength);
  38. JT808_0x0701TestBodiesImpl jT808_0X0701_content = JT808Serializer.Deserialize<JT808_0x0701TestBodiesImpl>(jT808_0X0701.ElectronicContent);
  39. Assert.Equal((uint)333, jT808_0X0701_content.Id);
  40. Assert.Equal("汉smallchi", jT808_0X0701_content.UserName);
  41. Assert.Equal(10, jT808_0X0701_content.UserNameLength);
  42. }
  43. }
  44. }