281 строка
10 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. namespace JTNE.Protocol.Test.MessageBody
  8. {
  9. public class JTNE_0x81Test
  10. {
  11. [Fact]
  12. public void Test1()
  13. {
  14. JTNE_0x81 jTNE_0X81 = new JTNE_0x81();
  15. jTNE_0X81.OperateTime = DateTime.Parse("2019-01-22 23:55:56");
  16. jTNE_0X81.ParamNum = 1;
  17. jTNE_0X81.ParamList = new List<JTNE_0x81_Body> {
  18. new JTNE_0x81_0x01{
  19. ParamId=0x01,
  20. ParamLength=2,
  21. ParamValue=10
  22. }
  23. };
  24. var hex = JTNESerializer.Serialize(jTNE_0X81).ToHexString();
  25. Assert.Equal("1301161737380101000A", hex);
  26. }
  27. [Fact]
  28. public void Test1_1()
  29. {
  30. var data = "1301161737380101000A".ToHexBytes();
  31. JTNE_0x81 jTNE_0X81 = JTNESerializer.Deserialize<JTNE_0x81>(data);
  32. Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X81.OperateTime);
  33. Assert.Equal(1, jTNE_0X81.ParamNum);
  34. Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject( new JTNE_0x81_0x01
  35. {
  36. ParamId = 0x01,
  37. ParamLength = 2,
  38. ParamValue = 10
  39. }), Newtonsoft.Json.JsonConvert.SerializeObject(jTNE_0X81.ParamList[0] ));
  40. }
  41. [Fact]
  42. public void Test2()
  43. {
  44. JTNE_0x81 jTNE_0X81 = new JTNE_0x81();
  45. jTNE_0X81.OperateTime = DateTime.Parse("2019-01-22 23:55:56");
  46. jTNE_0X81.ParamNum = 1;
  47. jTNE_0X81.ParamList = new List<JTNE_0x81_Body> {
  48. new JTNE_0x81_0x02{
  49. ParamId=0x02,
  50. ParamLength=2,
  51. ParamValue=20
  52. }
  53. };
  54. var hex = JTNESerializer.Serialize(jTNE_0X81).ToHexString();
  55. Assert.Equal("13011617373801020014", hex);
  56. }
  57. [Fact]
  58. public void Test2_1()
  59. {
  60. var data = "13011617373801020014".ToHexBytes();
  61. JTNE_0x81 jTNE_0X81 = JTNESerializer.Deserialize<JTNE_0x81>(data);
  62. Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X81.OperateTime);
  63. Assert.Equal(1, jTNE_0X81.ParamNum);
  64. Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(new JTNE_0x81_0x02
  65. {
  66. ParamId = 0x02,
  67. ParamLength = 2,
  68. ParamValue = 20
  69. }), Newtonsoft.Json.JsonConvert.SerializeObject(jTNE_0X81.ParamList[0]));
  70. }
  71. [Fact]
  72. public void Test4()
  73. {
  74. JTNE_0x81 jTNE_0X81 = new JTNE_0x81();
  75. jTNE_0X81.OperateTime = DateTime.Parse("2019-01-22 23:55:56");
  76. jTNE_0X81.ParamList = new List<JTNE_0x81_Body> {
  77. new JTNE_0x81_0x04{
  78. ParamValue=8
  79. },new JTNE_0x81_0x05{
  80. ParamValue=new byte[]{ 1, 2, 3, 4, 5, 6, 7, 8 }
  81. },
  82. new JTNE_0x81_0x06{
  83. ParamValue=40
  84. }
  85. };
  86. jTNE_0X81.ParamNum =(byte)jTNE_0X81.ParamList.Count;
  87. var hex = JTNESerializer.Serialize(jTNE_0X81).ToHexString();
  88. Assert.Equal("130116173738030408050102030405060708060028", hex);
  89. }
  90. [Fact]
  91. public void Test4_1()
  92. {
  93. var data = "130116173738030408050102030405060708060028".ToHexBytes();
  94. JTNE_0x81 jTNE_0X81 = JTNESerializer.Deserialize<JTNE_0x81>(data);
  95. Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X81.OperateTime);
  96. Assert.Equal(jTNE_0X81.ParamList.Count, jTNE_0X81.ParamNum);
  97. Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(new List<JTNE_0x81_Body> {
  98. new JTNE_0x81_0x04{
  99. ParamValue=8
  100. },new JTNE_0x81_0x05{
  101. ParamValue=new byte[]{1,2,3,4,5,6,7,8 },
  102. ParamLength=8
  103. }, new JTNE_0x81_0x06{
  104. ParamValue=40
  105. }
  106. }), Newtonsoft.Json.JsonConvert.SerializeObject(jTNE_0X81.ParamList));
  107. }
  108. [Fact]
  109. public void Test5()
  110. {
  111. JTNE_0x81 jTNE_0X81 = new JTNE_0x81();
  112. jTNE_0X81.OperateTime = DateTime.Parse("2019-01-22 23:55:56");
  113. jTNE_0X81.ParamList = new List<JTNE_0x81_Body> {
  114. new JTNE_0x81_0x0D{
  115. ParamValue=8
  116. },new JTNE_0x81_0x0E{
  117. ParamValue=new byte[]{ 1, 2, 3, 4, 5, 6, 7, 8 }
  118. },
  119. new JTNE_0x81_0x0F{
  120. ParamValue=40
  121. }
  122. };
  123. jTNE_0X81.ParamNum = (byte)jTNE_0X81.ParamList.Count;
  124. var hex = JTNESerializer.Serialize(jTNE_0X81).ToHexString();
  125. Assert.Equal("130116173738030D080E01020304050607080F0028", hex);
  126. }
  127. [Fact]
  128. public void Test5_1()
  129. {
  130. var data = "130116173738030D080E01020304050607080F0028".ToHexBytes();
  131. JTNE_0x81 jTNE_0X81 = JTNESerializer.Deserialize<JTNE_0x81>(data);
  132. Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X81.OperateTime);
  133. Assert.Equal(jTNE_0X81.ParamList.Count, jTNE_0X81.ParamNum);
  134. Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(new List<JTNE_0x81_Body> {
  135. new JTNE_0x81_0x0D{
  136. ParamValue=8
  137. },new JTNE_0x81_0x0E{
  138. ParamValue=new byte[]{1,2,3,4,5,6,7,8 },
  139. ParamLength=8
  140. }, new JTNE_0x81_0x0F{
  141. ParamValue=40
  142. }
  143. }), Newtonsoft.Json.JsonConvert.SerializeObject(jTNE_0X81.ParamList));
  144. }
  145. [Fact]
  146. public void Test3()
  147. {
  148. JTNE_0x81 jTNE_0X81 = new JTNE_0x81();
  149. jTNE_0X81.OperateTime = DateTime.Parse("2019-01-22 23:55:56");
  150. jTNE_0X81.ParamNum = 1;
  151. jTNE_0X81.ParamList = new List<JTNE_0x81_Body> {
  152. new JTNE_0x81_0x03{
  153. ParamId=0x03,
  154. ParamLength=2,
  155. ParamValue=30
  156. }
  157. };
  158. var hex = JTNESerializer.Serialize(jTNE_0X81).ToHexString();
  159. Assert.Equal("1301161737380103001E", hex);
  160. }
  161. [Fact]
  162. public void Test3_1()
  163. {
  164. var data = "1301161737380103001E".ToHexBytes();
  165. JTNE_0x81 jTNE_0X81 = JTNESerializer.Deserialize<JTNE_0x81>(data);
  166. Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X81.OperateTime);
  167. Assert.Equal(1, jTNE_0X81.ParamNum);
  168. Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(new JTNE_0x81_0x03
  169. {
  170. ParamId = 0x03,
  171. ParamLength = 2,
  172. ParamValue = 30
  173. }), Newtonsoft.Json.JsonConvert.SerializeObject(jTNE_0X81.ParamList[0]));
  174. }
  175. [Fact]
  176. public void TestAll()
  177. {
  178. JTNE_0x81 jTNE_0X81 = new JTNE_0x81();
  179. jTNE_0X81.OperateTime = DateTime.Parse("2019-01-22 23:55:56");
  180. jTNE_0X81.ParamNum = 12;
  181. jTNE_0X81.ParamList = new List<JTNE_0x81_Body> {
  182. new JTNE_0x81_0x01{
  183. ParamValue=10
  184. },
  185. new JTNE_0x81_0x02{
  186. ParamValue=20
  187. },
  188. new JTNE_0x81_0x03{
  189. ParamValue=30
  190. },
  191. new JTNE_0x81_0x06{
  192. ParamValue=40
  193. },
  194. new JTNE_0x81_0x07{
  195. ParamValue="abcde"
  196. },
  197. new JTNE_0x81_0x08{
  198. ParamValue="12345"
  199. },
  200. new JTNE_0x81_0x09{
  201. ParamValue=50
  202. },
  203. new JTNE_0x81_0x0A{
  204. ParamValue=60
  205. },
  206. new JTNE_0x81_0x0B{
  207. ParamValue=70
  208. },
  209. new JTNE_0x81_0x0C{
  210. ParamValue=80
  211. },
  212. new JTNE_0x81_0x0F{
  213. ParamValue=90
  214. },
  215. new JTNE_0x81_0x10{
  216. ParamValue=0x01
  217. }
  218. };
  219. var hex = JTNESerializer.Serialize(jTNE_0X81).ToHexString();
  220. Assert.Equal("1301161737380C01000A02001403001E06002807616263646508313233343509320A003C0B00460C500F005A1001", hex);
  221. }
  222. [Fact]
  223. public void TestAll_1()
  224. {
  225. var data = "1301161737380C01000A02001403001E06002807616263646508313233343509320A003C0B00460C500F005A1001".ToHexBytes();
  226. JTNE_0x81 jTNE_0X81 = JTNESerializer.Deserialize<JTNE_0x81>(data);
  227. Assert.Equal(DateTime.Parse("2019-01-22 23:55:56"), jTNE_0X81.OperateTime);
  228. Assert.Equal(12, jTNE_0X81.ParamNum);
  229. Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(new List<JTNE_0x81_Body> {
  230. new JTNE_0x81_0x01{
  231. ParamValue=10
  232. },
  233. new JTNE_0x81_0x02{
  234. ParamValue=20
  235. },
  236. new JTNE_0x81_0x03{
  237. ParamValue=30
  238. },
  239. new JTNE_0x81_0x06{
  240. ParamValue=40
  241. },
  242. new JTNE_0x81_0x07{
  243. ParamValue="abcde"
  244. },
  245. new JTNE_0x81_0x08{
  246. ParamValue="12345"
  247. },
  248. new JTNE_0x81_0x09{
  249. ParamValue=50
  250. },
  251. new JTNE_0x81_0x0A{
  252. ParamValue=60
  253. },
  254. new JTNE_0x81_0x0B{
  255. ParamValue=70
  256. },
  257. new JTNE_0x81_0x0C{
  258. ParamValue=80
  259. },
  260. new JTNE_0x81_0x0F{
  261. ParamValue=90
  262. },
  263. new JTNE_0x81_0x10{
  264. ParamValue=0x01
  265. }
  266. }), Newtonsoft.Json.JsonConvert.SerializeObject(jTNE_0X81.ParamList));
  267. }
  268. }
  269. }