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.

70 lines
2.9 KiB

  1. using System;
  2. using System.Collections.Generic;
  3. using JTNE.Protocol.Enums;
  4. using JTNE.Protocol.Extensions;
  5. using JTNE.Protocol.MessageBody;
  6. using Xunit;
  7. using Xunit.Abstractions;
  8. namespace JTNE.Protocol.Test
  9. {
  10. public class JTNEHeaderPackageTest {
  11. private readonly ITestOutputHelper output;
  12. public JTNEHeaderPackageTest (ITestOutputHelper outputHelper) {
  13. this.output = outputHelper;
  14. }
  15. [Fact]
  16. public void Test1 () {
  17. JTNEPackageHeader jTNEHeaderPackage = new JTNEPackageHeader ();
  18. jTNEHeaderPackage.VIN = "123456789";
  19. jTNEHeaderPackage.AskId = JTNEAskId.CMD.ToByteValue ();
  20. jTNEHeaderPackage.MsgId = JTNEMsgId.Login.ToByteValue ();
  21. JTNE_0x01 jTNE_0X01 = new JTNE_0x01 ();
  22. jTNE_0X01.PDATime = DateTime.Parse ("2019-01-22 23:55:56");
  23. jTNE_0X01.LoginNum = 1;
  24. jTNE_0X01.BatteryLength = 0x04;
  25. jTNE_0X01.SIM = "12345678998765432100";
  26. jTNE_0X01.BatteryNos = new List<string> () {
  27. "1234",
  28. "4567",
  29. "9870"
  30. };
  31. jTNEHeaderPackage.Bodies = JTNESerializer.Serialize (jTNE_0X01);
  32. var hex = JTNESerializer.Serialize (jTNEHeaderPackage).ToHexString ();
  33. Assert.Equal ("232301FE313233343536373839000000000000000001002A130116173738000131323334353637383939383736353433323130300304313233343435363739383730FD", hex);
  34. }
  35. [Fact]
  36. public void Test2 () {
  37. var data = "232301FE313233343536373839000000000000000001002A130116173738000131323334353637383939383736353433323130300304313233343435363739383730FD".ToHexBytes ();
  38. JTNEPackageHeader jTNEHeaderPackage = JTNESerializer.Deserialize<JTNEPackageHeader> (data);
  39. Assert.Equal (JTNEAskId.CMD.ToByteValue (), jTNEHeaderPackage.AskId);
  40. Assert.Equal (JTNEMsgId.Login.ToByteValue (), jTNEHeaderPackage.MsgId);
  41. Assert.Equal ("123456789", jTNEHeaderPackage.VIN);
  42. JTNE_0x01 jTNE_0X01 = JTNESerializer.Deserialize<JTNE_0x01> (jTNEHeaderPackage.Bodies);
  43. Assert.Equal (DateTime.Parse ("2019-01-22 23:55:56"), jTNE_0X01.PDATime);
  44. Assert.Equal (1, jTNE_0X01.LoginNum);
  45. Assert.Equal (0x04, jTNE_0X01.BatteryLength);
  46. Assert.Equal ("12345678998765432100", jTNE_0X01.SIM);
  47. Assert.Equal (3, jTNE_0X01.BatteryCount);
  48. Assert.Equal ("1234", jTNE_0X01.BatteryNos[0]);
  49. Assert.Equal ("4567", jTNE_0X01.BatteryNos[1]);
  50. Assert.Equal ("9870", jTNE_0X01.BatteryNos[2]);
  51. }
  52. }
  53. public static class JTNEReplyExtensions{
  54. public static JTNEPackage GenerateReply(this JTNEPackage source,JTNEAskId askId){
  55. return new JTNEPackage(){
  56. MsgId = source.MsgId,
  57. AskId = askId,
  58. VIN = source.VIN,
  59. DataUnitLength = 0
  60. };
  61. }
  62. }
  63. }