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.

114 lines
4.5 KiB

  1. using JTNE.Protocol.MessageBody;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Text;
  5. using Xunit;
  6. using JTNE.Protocol.Extensions;
  7. using System.Linq;
  8. namespace JTNE.Protocol.Test.MessageBody
  9. {
  10. public class JTNE_0x82Test
  11. {
  12. [Fact]
  13. public void Test1()
  14. {
  15. JTNE_0x82 jTNE_0X82 = new JTNE_0x82();
  16. jTNE_0X82.ControlTime = DateTime.Parse("2019-01-22 23:55:56");
  17. jTNE_0X82.ParamID =0x02;
  18. var hex = JTNESerializer.Serialize(jTNE_0X82).ToHexString();
  19. Assert.Equal("13011617373802", hex);
  20. }
  21. [Fact]
  22. public void Test2()
  23. {
  24. var data = "13011617373802".ToHexBytes();
  25. JTNE_0x82 jTNE_0X82 = JTNESerializer.Deserialize<JTNE_0x82>(data);
  26. Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X82.ControlTime);
  27. Assert.Equal(0x02, jTNE_0X82.ParamID);
  28. }
  29. [Fact]
  30. public void Test3()
  31. {
  32. JTNE_0x82 jTNE_0X82 = new JTNE_0x82();
  33. jTNE_0X82.ControlTime = DateTime.Parse("2019-01-22 23:55:56");
  34. jTNE_0X82.ParamID = 0x01;
  35. jTNE_0X82.Parameter = new JTNE_0x82_0x01 {
  36. UpgradeCommand = new Metadata.UpgradeCommand {
  37. DialName="TK",
  38. DialUserName="TKUser",
  39. DialUserPwd="TKPwd",
  40. FirmwareVersion="1.0",
  41. HardwareVersion="2.0",
  42. ManufacturerID= "ManufacturerName",
  43. ServerAddress="http://www.baidu.com:8383",
  44. ServerUrl= JTNEGlobalConfigs.Instance.Encoding.GetBytes("bd.com"),
  45. ServerPort=8383,
  46. ConnectTimeLimit=10
  47. }
  48. };
  49. var hex = JTNESerializer.Serialize(jTNE_0X82).ToHexString();
  50. Assert.Equal("13011617373801687474703A2F2F7777772E62616964752E636F6D3A383338333B544B3B544B557365723B544B5077643B62642E636F6D3B383338333B4D616E7566616374757265724E616D653B322E303B312E303B3130", hex);
  51. }
  52. [Fact]
  53. public void Test4()
  54. {
  55. var data = "13011617373801687474703A2F2F7777772E62616964752E636F6D3A383338333B544B3B544B557365723B544B5077643B62642E636F6D3B383338333B4D616E7566616374757265724E616D653B322E303B312E303B3130".ToHexBytes();
  56. JTNE_0x82 jTNE_0X82 = JTNESerializer.Deserialize<JTNE_0x82>(data);
  57. Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X82.ControlTime);
  58. Assert.Equal(0x01, jTNE_0X82.ParamID);
  59. Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(new JTNE_0x82_0x01
  60. {
  61. UpgradeCommand = new Metadata.UpgradeCommand
  62. {
  63. DialName = "TK",
  64. DialUserName = "TKUser",
  65. DialUserPwd = "TKPwd",
  66. FirmwareVersion = "1.0",
  67. HardwareVersion = "2.0",
  68. ManufacturerID = "ManufacturerName",
  69. ServerAddress = "http://www.baidu.com:8383",
  70. ServerUrl = JTNEGlobalConfigs.Instance.Encoding.GetBytes("bd.com"),
  71. ServerPort = 8383,
  72. ConnectTimeLimit = 10
  73. }
  74. }), Newtonsoft.Json.JsonConvert.SerializeObject(jTNE_0X82.Parameter));
  75. }
  76. [Fact]
  77. public void Test5()
  78. {
  79. JTNE_0x82 jTNE_0X82 = new JTNE_0x82();
  80. jTNE_0X82.ControlTime = DateTime.Parse("2019-01-22 23:55:56");
  81. jTNE_0X82.ParamID = 0x06;
  82. jTNE_0X82.Parameter = new JTNE_0x82_0x06
  83. {
  84. AlarmCommand=new Metadata.AlarmCommand {
  85. AlarmLevel= Enums.JTNEAlarmLevel.一级报警
  86. }
  87. };
  88. var hex = JTNESerializer.Serialize(jTNE_0X82).ToHexString();
  89. Assert.Equal("1301161737380601", hex);
  90. }
  91. [Fact]
  92. public void Test6()
  93. {
  94. var data = "1301161737380601".ToHexBytes();
  95. JTNE_0x82 jTNE_0X82 = JTNESerializer.Deserialize<JTNE_0x82>(data);
  96. Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X82.ControlTime);
  97. Assert.Equal(0x06, jTNE_0X82.ParamID);
  98. Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(new JTNE_0x82_0x06
  99. {
  100. AlarmCommand = new Metadata.AlarmCommand
  101. {
  102. AlarmLevel = Enums.JTNEAlarmLevel.一级报警
  103. }
  104. }), Newtonsoft.Json.JsonConvert.SerializeObject(jTNE_0X82.Parameter));
  105. }
  106. }
  107. }