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

71 lines
2.5 KiB

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using Xunit;
  5. using JT808.Protocol.Extensions;
  6. using JT808.Protocol.MessageBody;
  7. namespace JT808.Protocol.Test.MessageBody
  8. {
  9. public class JT808_0x0002Test
  10. {
  11. JT808Serializer JT808Serializer = new JT808Serializer();
  12. [Fact]
  13. public void Test1()
  14. {
  15. JT808Package jT808Package = new JT808Package
  16. {
  17. Header = new JT808Header
  18. {
  19. MsgId = Enums.JT808MsgId._0x0002.ToUInt16Value(),
  20. ManualMsgNum = 10,
  21. TerminalPhoneNo = "12345678900",
  22. }
  23. };
  24. //"7E 00 02 00 00 01 23 45 67 89 00 00 0A 81 7E"
  25. var hex = JT808Serializer.Serialize(jT808Package).ToHexString();
  26. Assert.Equal("7E00020000012345678900000A817E", hex);
  27. }
  28. [Fact]
  29. public void Test2()
  30. {
  31. var bytes = "7E 00 02 00 00 01 23 45 67 89 00 00 0A 81 7E".ToHexBytes();
  32. JT808Package jT808Package = JT808Serializer.Deserialize<JT808Package>(bytes);
  33. Assert.Equal(Enums.JT808MsgId._0x0002.ToValue(), jT808Package.Header.MsgId);
  34. Assert.Equal(10, jT808Package.Header.MsgNum);
  35. Assert.Equal("12345678900", jT808Package.Header.TerminalPhoneNo);
  36. Assert.Null(jT808Package.Bodies);
  37. }
  38. [Fact]
  39. public void Test3()
  40. {
  41. var bytes = "7E 00 02 00 00 04 00 21 67 92 87 00 2B 7D 02 7E".ToHexBytes();
  42. JT808Package jT808Package = JT808Serializer.Deserialize<JT808Package>(bytes);
  43. Assert.Equal(Enums.JT808MsgId._0x0002.ToValue(), jT808Package.Header.MsgId);
  44. Assert.Equal(43, jT808Package.Header.MsgNum);
  45. Assert.Equal("40021679287", jT808Package.Header.TerminalPhoneNo);
  46. Assert.Null(jT808Package.Bodies);
  47. }
  48. [Fact]
  49. public void Test4()
  50. {
  51. JT808Package jT808Package = new JT808Package
  52. {
  53. Header = new JT808Header
  54. {
  55. MsgId = Enums.JT808MsgId._0x0002.ToUInt16Value(),
  56. ManualMsgNum = 10,
  57. TerminalPhoneNo = "12345678900",
  58. },
  59. Bodies= new JT808_0x0002()
  60. };
  61. //"7E 00 02 00 00 01 23 45 67 89 00 00 0A 81 7E"
  62. var hex = JT808Serializer.Serialize(jT808Package).ToHexString();
  63. Assert.Equal("7E00020000012345678900000A817E", hex);
  64. }
  65. }
  66. }