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.

52 lines
2.0 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_0x8103_0xF367_Test
  11. {
  12. JT808Serializer JT808Serializer;
  13. public JT808_0x8103_0xF367_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_0x8103 jT808UploadLocationRequest = new JT808_0x8103
  25. {
  26. ParamList = new List<JT808_0x8103_BodyBase> {
  27. new JT808_0x8103_0xF367{
  28. LateralRearApproachAlarmTimeThreshold=1,
  29. RearApproachAlarmTimeThreshold=2
  30. }
  31. }
  32. };
  33. var hex = JT808Serializer.Serialize(jT808UploadLocationRequest).ToHexString();
  34. Assert.Equal("010000F367020201", hex);
  35. }
  36. [Fact]
  37. public void Deserialize()
  38. {
  39. var jT808UploadLocationRequest = JT808Serializer.Deserialize<JT808_0x8103>("010000F367020201".ToHexBytes());
  40. JT808_0x8103_0xF367 jT808_0x8103_0xF367 = jT808UploadLocationRequest.ParamList[0] as JT808_0x8103_0xF367;
  41. Assert.Equal(1, jT808_0x8103_0xF367.LateralRearApproachAlarmTimeThreshold);
  42. Assert.Equal(2, jT808_0x8103_0xF367.RearApproachAlarmTimeThreshold);
  43. }
  44. [Fact]
  45. public void Json()
  46. {
  47. var json = JT808Serializer.Analyze<JT808_0x8103>("010000F367020201".ToHexBytes());
  48. }
  49. }
  50. }