Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

98 linhas
4.5 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_0x1A00Test
  12. {
  13. JT809Serializer JT809Serializer;
  14. public JT809_JT1078_0x1A00Test()
  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_0x1A00 jT809_JT1078_0x1A00 = new JT809_JT1078_0x1A00()
  37. {
  38. VehicleNo="粤B12345",
  39. VehicleColor= Protocol.Enums.JT809VehicleColorType.黄色,
  40. SubBusinessType= (ushort)JT809_JT1078_SubBusinessType.远程录像回放请求应答消息,
  41. SubBodies= new JT809_JT1078_0x1A00_0x1A01()
  42. {
  43. Result= JT809_JT1078_0x1A00_0x1A01_Result.失败,
  44. ServerIp="127.0.0.1",
  45. ServerPort=8080
  46. }
  47. };
  48. var hex = JT809Serializer.Serialize(jT809_JT1078_0x1A00).ToHexString();
  49. Assert.Equal("D4C142313233343500000000000000000000000000021A010000002300000000000000000000000000000000000000000000003132372E302E302E311F9001", hex);
  50. }
  51. [Fact]
  52. public void Test2()
  53. {
  54. var jT809_JT1078_0x1A00 = JT809Serializer.Deserialize<JT809_JT1078_0x1A00>("D4C142313233343500000000000000000000000000021A010000002300000000000000000000000000000000000000000000003132372E302E302E311F9001".ToHexBytes());
  55. Assert.Equal("粤B12345", jT809_JT1078_0x1A00.VehicleNo);
  56. Assert.Equal(Protocol.Enums.JT809VehicleColorType.黄色, jT809_JT1078_0x1A00.VehicleColor);
  57. Assert.Equal((ushort)JT809_JT1078_SubBusinessType.远程录像回放请求应答消息, jT809_JT1078_0x1A00.SubBusinessType);
  58. var jT809_JT1078_0x1A00_0x1A01 = jT809_JT1078_0x1A00.SubBodies as JT809_JT1078_0x1A00_0x1A01;
  59. Assert.Equal(1, (byte)jT809_JT1078_0x1A00_0x1A01.Result);
  60. Assert.Equal("127.0.0.1", jT809_JT1078_0x1A00_0x1A01.ServerIp);
  61. Assert.Equal(8080, jT809_JT1078_0x1A00_0x1A01.ServerPort);
  62. }
  63. [Fact]
  64. public void Test3()
  65. {
  66. JT809_JT1078_0x1A00 jT809_JT1078_0x1A00 = new JT809_JT1078_0x1A00()
  67. {
  68. VehicleNo = "粤B12345",
  69. VehicleColor = Protocol.Enums.JT809VehicleColorType.黄色,
  70. SubBusinessType = (ushort)JT809_JT1078_SubBusinessType.远程录像回放控制应答消息,
  71. SubBodies = new JT809_JT1078_0x1A00_0x1A02() {
  72. Result= JT809_JT1078_0x1A00_0x1A02_Result.失败
  73. }
  74. };
  75. var hex = JT809Serializer.Serialize(jT809_JT1078_0x1A00).ToHexString();
  76. Assert.Equal("D4C142313233343500000000000000000000000000021A020000000101", hex);
  77. }
  78. [Fact]
  79. public void Test4()
  80. {
  81. var jT809_JT1078_0x1A00 = JT809Serializer.Deserialize<JT809_JT1078_0x1A00>("D4C142313233343500000000000000000000000000021A020000000101".ToHexBytes());
  82. Assert.Equal("粤B12345", jT809_JT1078_0x1A00.VehicleNo);
  83. Assert.Equal(Protocol.Enums.JT809VehicleColorType.黄色, jT809_JT1078_0x1A00.VehicleColor);
  84. Assert.Equal((ushort)JT809_JT1078_SubBusinessType.远程录像回放控制应答消息, jT809_JT1078_0x1A00.SubBusinessType);
  85. var jT809_JT1078_0x1A00_0x1A02 = jT809_JT1078_0x1A00.SubBodies as JT809_JT1078_0x1A00_0x1A02;
  86. Assert.Equal(1, (byte)jT809_JT1078_0x1A00_0x1A02.Result);
  87. }
  88. }
  89. }