You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

136 lines
7.4 KiB

  1. using JT809.Protocol.Extensions.JT1078.Enums;
  2. using JT809.Protocol.Extensions.JT1078.MessageBody;
  3. using Microsoft.Extensions.DependencyInjection;
  4. using System;
  5. using System.Linq;
  6. using System.Collections.Generic;
  7. using Xunit;
  8. using Newtonsoft.Json;
  9. namespace JT809.Protocol.Extensions.JT1078.Test
  10. {
  11. public class JT809_JT1078_0x1B00Test
  12. {
  13. JT809Serializer JT809Serializer;
  14. public JT809_JT1078_0x1B00Test()
  15. {
  16. IServiceCollection serviceDescriptors1 = new ServiceCollection();
  17. serviceDescriptors1
  18. .AddJT809Configure()
  19. .AddJT1078Configure();
  20. var ServiceProvider1 = serviceDescriptors1.BuildServiceProvider();
  21. var defaultConfig = ServiceProvider1.GetRequiredService<IJT809Config>();
  22. JT809Serializer = defaultConfig.GetSerializer();
  23. Newtonsoft.Json.JsonConvert.DefaultSettings = new Func<JsonSerializerSettings>(() =>
  24. {
  25. //日期类型默认格式化处理
  26. return new Newtonsoft.Json.JsonSerializerSettings
  27. {
  28. DateFormatHandling = Newtonsoft.Json.DateFormatHandling.MicrosoftDateFormat,
  29. DateFormatString = "yyyy-MM-dd HH:mm:ss"
  30. };
  31. });
  32. }
  33. [Fact]
  34. public void Test1()
  35. {
  36. JT809_JT1078_0x1B00 jT809_JT1078_0x1B00 = new JT809_JT1078_0x1B00()
  37. {
  38. VehicleNo="粤B12345",
  39. VehicleColor= Protocol.Enums.JT809VehicleColorType.黄色,
  40. SubBusinessType= (ushort)JT809_JT1078_SubBusinessType.远程录像下载请求应答消息,
  41. SubBodies= new JT809_JT1078_0x1B00_0x1B01()
  42. {
  43. Result=1,
  44. SessionId=2
  45. }
  46. };
  47. var hex = JT809Serializer.Serialize(jT809_JT1078_0x1B00).ToHexString();
  48. Assert.Equal("D4C142313233343500000000000000000000000000021B0100000003010002", hex);
  49. }
  50. [Fact]
  51. public void Test2()
  52. {
  53. var jT809_JT1078_0x1B00 = JT809Serializer.Deserialize<JT809_JT1078_0x1B00>("D4C142313233343500000000000000000000000000021B0100000003010002".ToHexBytes());
  54. Assert.Equal("粤B12345", jT809_JT1078_0x1B00.VehicleNo);
  55. Assert.Equal(Protocol.Enums.JT809VehicleColorType.黄色, jT809_JT1078_0x1B00.VehicleColor);
  56. Assert.Equal((ushort)JT809_JT1078_SubBusinessType.远程录像下载请求应答消息, jT809_JT1078_0x1B00.SubBusinessType);
  57. var jT809_JT1078_0x1B00_0x1B01 = jT809_JT1078_0x1B00.SubBodies as JT809_JT1078_0x1B00_0x1B01;
  58. Assert.Equal(1, jT809_JT1078_0x1B00_0x1B01.Result);
  59. Assert.Equal(2, jT809_JT1078_0x1B00_0x1B01.SessionId);
  60. }
  61. [Fact]
  62. public void Test3()
  63. {
  64. JT809_JT1078_0x1B00 jT809_JT1078_0x1B00 = new JT809_JT1078_0x1B00()
  65. {
  66. VehicleNo = "粤B12345",
  67. VehicleColor = Protocol.Enums.JT809VehicleColorType.黄色,
  68. SubBusinessType = (ushort)JT809_JT1078_SubBusinessType.远程录像下载通知消息,
  69. SubBodies = new JT809_JT1078_0x1B00_0x1B02() {
  70. Result=1,
  71. UserName="tk",
  72. SessionId=2,
  73. ServerIp="127.0.0.1",
  74. FilePath="D://123/456",
  75. Password="tk123456",
  76. TcpPort=8080
  77. }
  78. };
  79. var hex = JT809Serializer.Serialize(jT809_JT1078_0x1B00).ToHexString();
  80. Assert.Equal("D4C142313233343500000000000000000000000000021B020000013401000200000000000000000000000000000000000000000000003132372E302E302E311F900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000746B0000000000000000000000000000746B313233343536000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000443A2F2F3132332F343536", hex);
  81. }
  82. [Fact]
  83. public void Test4()
  84. {
  85. var jT809_JT1078_0x1B00 = JT809Serializer.Deserialize<JT809_JT1078_0x1B00>("D4C142313233343500000000000000000000000000021B020000013401000200000000000000000000000000000000000000000000003132372E302E302E311F900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000746B0000000000000000000000000000746B313233343536000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000443A2F2F3132332F343536".ToHexBytes());
  86. Assert.Equal("粤B12345", jT809_JT1078_0x1B00.VehicleNo);
  87. Assert.Equal(Protocol.Enums.JT809VehicleColorType.黄色, jT809_JT1078_0x1B00.VehicleColor);
  88. Assert.Equal((ushort)JT809_JT1078_SubBusinessType.远程录像下载通知消息, jT809_JT1078_0x1B00.SubBusinessType);
  89. var jT809_JT1078_0x1B00_0x1B02 = jT809_JT1078_0x1B00.SubBodies as JT809_JT1078_0x1B00_0x1B02;
  90. Assert.Equal(1, jT809_JT1078_0x1B00_0x1B02.Result);
  91. Assert.Equal("tk", jT809_JT1078_0x1B00_0x1B02.UserName);
  92. Assert.Equal(2, jT809_JT1078_0x1B00_0x1B02.SessionId);
  93. Assert.Equal("127.0.0.1", jT809_JT1078_0x1B00_0x1B02.ServerIp);
  94. Assert.Equal("D://123/456", jT809_JT1078_0x1B00_0x1B02.FilePath);
  95. Assert.Equal("tk123456", jT809_JT1078_0x1B00_0x1B02.Password);
  96. Assert.Equal(8080, jT809_JT1078_0x1B00_0x1B02.TcpPort);
  97. }
  98. [Fact]
  99. public void Test5()
  100. {
  101. JT809_JT1078_0x1B00 jT809_JT1078_0x1B00 = new JT809_JT1078_0x1B00()
  102. {
  103. VehicleNo = "粤B12345",
  104. VehicleColor = Protocol.Enums.JT809VehicleColorType.黄色,
  105. SubBusinessType = (ushort)JT809_JT1078_SubBusinessType.远程录像下载控制应答消息,
  106. SubBodies = new JT809_JT1078_0x1B00_0x1B03()
  107. {
  108. Result = 1
  109. }
  110. };
  111. var hex = JT809Serializer.Serialize(jT809_JT1078_0x1B00).ToHexString();
  112. Assert.Equal("D4C142313233343500000000000000000000000000021B030000000101", hex);
  113. }
  114. [Fact]
  115. public void Test6()
  116. {
  117. var jT809_JT1078_0x1B00 = JT809Serializer.Deserialize<JT809_JT1078_0x1B00>("D4C142313233343500000000000000000000000000021B030000000101".ToHexBytes());
  118. Assert.Equal("粤B12345", jT809_JT1078_0x1B00.VehicleNo);
  119. Assert.Equal(Protocol.Enums.JT809VehicleColorType.黄色, jT809_JT1078_0x1B00.VehicleColor);
  120. Assert.Equal((ushort)JT809_JT1078_SubBusinessType.远程录像下载控制应答消息, jT809_JT1078_0x1B00.SubBusinessType);
  121. var jT809_JT1078_0x1B00_0x1B03 = jT809_JT1078_0x1B00.SubBodies as JT809_JT1078_0x1B00_0x1B03;
  122. Assert.Equal(1, jT809_JT1078_0x1B00_0x1B03.Result);
  123. }
  124. }
  125. }