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.

69 line
2.7 KiB

  1. using JT808.Protocol.Extensions.YueBiao.MessageBody;
  2. using JT808.Protocol.Extensions.YueBiao.Metadata;
  3. using JT808.Protocol.MessageBody;
  4. using Microsoft.Extensions.DependencyInjection;
  5. using System;
  6. using System.Collections.Generic;
  7. using Xunit;
  8. namespace JT808.Protocol.Extensions.YueBiao.Test
  9. {
  10. public class JT808_0x0900_0xF7_Test
  11. {
  12. JT808Serializer JT808Serializer;
  13. public JT808_0x0900_0xF7_Test()
  14. {
  15. ServiceCollection serviceDescriptors = new ServiceCollection();
  16. serviceDescriptors.AddJT808Configure()
  17. .AddYueBiaoConfigure();
  18. IJT808Config jT808Config = serviceDescriptors.BuildServiceProvider().GetRequiredService<IJT808Config>();
  19. JT808Serializer = new JT808Serializer(jT808Config);
  20. }
  21. [Fact]
  22. public void Serializer()
  23. {
  24. JT808_0x0900_0xF7 jT808_0x0900_0xF7 = new JT808_0x0900_0xF7
  25. {
  26. USBMessageCount = 2,
  27. USBMessages = new List<JT808_0x0900_0xF7_USB> {
  28. new JT808_0x0900_0xF7_USB {
  29. USBID = 1,
  30. AlarmStatus = 1,
  31. WorkingCondition = 2
  32. },
  33. new JT808_0x0900_0xF7_USB {
  34. USBID = 2,
  35. AlarmStatus = 1,
  36. WorkingCondition = 2
  37. }
  38. }
  39. };
  40. var hex = JT808Serializer.Serialize(jT808_0x0900_0xF7).ToHexString();
  41. Assert.Equal("020105020000000102050200000001", hex);
  42. }
  43. [Fact]
  44. public void Deserialize()
  45. {
  46. var jT808_0x0900_0xF7 = JT808Serializer.Deserialize<JT808_0x0900_0xF7>("020105020000000102050200000001".ToHexBytes());
  47. Assert.Equal(JT808_YueBiao_Constants.JT808_0X0900_0xF7, jT808_0x0900_0xF7.PassthroughType);
  48. Assert.Equal(2, jT808_0x0900_0xF7.USBMessageCount);
  49. Assert.Equal(1, jT808_0x0900_0xF7.USBMessages[0].USBID);
  50. Assert.Equal(5, jT808_0x0900_0xF7.USBMessages[0].MessageLength);
  51. Assert.Equal(2, jT808_0x0900_0xF7.USBMessages[0].WorkingCondition);
  52. Assert.Equal(1u, jT808_0x0900_0xF7.USBMessages[0].AlarmStatus);
  53. Assert.Equal(2, jT808_0x0900_0xF7.USBMessages[1].USBID);
  54. Assert.Equal(5, jT808_0x0900_0xF7.USBMessages[1].MessageLength);
  55. Assert.Equal(2, jT808_0x0900_0xF7.USBMessages[1].WorkingCondition);
  56. Assert.Equal(1u, jT808_0x0900_0xF7.USBMessages[1].AlarmStatus);
  57. }
  58. [Fact]
  59. public void Json()
  60. {
  61. var json = JT808Serializer.Analyze<JT808_0x0900_0xF7>("020105020000000102050200000001".ToHexBytes());
  62. }
  63. }
  64. }