MessageTest.cs 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693
  1. using LanTian_Pump_664_Or_886.MessageEntity.Incoming;
  2. using LanTian_Pump_664_Or_886.MessageEntity.Outgoing;
  3. using Microsoft.VisualStudio.TestTools.UnitTesting;
  4. using Edge.Core.Parser.BinaryParser.Util;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Linq;
  8. namespace LanTian_Pump_664_Or_886_Test
  9. {
  10. [TestClass]
  11. public class MessageTest
  12. {
  13. public static bool ValueEquals(IEnumerable<byte> array1, IEnumerable<byte> array2)
  14. {
  15. if (array1 == null && array2 == null)
  16. {
  17. return true;
  18. }
  19. if ((array1 == null) || (array2 == null))
  20. {
  21. return false;
  22. }
  23. if (array1.Count() != array2.Count())
  24. {
  25. return false;
  26. }
  27. if (array1.Equals(array2))
  28. {
  29. return true;
  30. }
  31. else
  32. {
  33. for (int Index = 0; Index < array1.Count(); Index++)
  34. {
  35. if (!Equals(array1.ElementAt(Index), array2.ElementAt(Index)))
  36. {
  37. return false;
  38. }
  39. }
  40. }
  41. return true;
  42. }
  43. [TestMethod]
  44. public void CaculateXRL_TestMethod1()
  45. {
  46. var expect = 0x46;
  47. var actual = LanTian_Pump_664_Or_886.Parser.GetXRL("F5 01 A5 00 25 00 B2".ToBytes().ToList());
  48. Assert.AreEqual(true, expect == actual);
  49. }
  50. [TestMethod]
  51. public void CaculateXRL_TestMethod2()
  52. {
  53. var expect = 0x3C;
  54. var actual = LanTian_Pump_664_Or_886.Parser.GetXRL("F5 01 A3 59 B2".ToBytes().ToList());
  55. Assert.AreEqual(true, expect == actual);
  56. }
  57. [TestMethod]
  58. public void CaculateXRL_TestMethod3()
  59. {
  60. var expect = 0x77;
  61. var actual = LanTian_Pump_664_Or_886.Parser.GetXRL("F5 01 A6 00 00 10 00 B5".ToBytes().ToList());
  62. Assert.AreEqual(true, expect == actual);
  63. }
  64. [TestMethod]
  65. public void CaculateXRL_TestMethod4()
  66. {
  67. var expect = 0x63;
  68. var actual = LanTian_Pump_664_Or_886.Parser.GetXRL("F5 01 A2 B5".ToBytes().ToList());
  69. Assert.AreEqual(true, expect == actual);
  70. }
  71. [TestMethod]
  72. public void ChangePriceRequest_TestMethod1()
  73. {
  74. var request = new ChangePriceRequest(2500, 3);
  75. var parser = new LanTian_Pump_664_Or_886.Parser();
  76. var expect = "F5 01 A5 00 25 00 B2 46".ToBytes();
  77. var actual = parser.Serialize(request);
  78. Assert.AreEqual(true, ValueEquals(expect, actual), "actual: 0x" + actual.ToHexLogString());
  79. }
  80. [TestMethod]
  81. public void ChangePriceRequest_TestMethod2()
  82. {
  83. var request = new ChangePriceRequest(122534, 3);
  84. var parser = new LanTian_Pump_664_Or_886.Parser();
  85. var expect = "F5 01 A5 12 25 34 B2 00".ToBytes();
  86. var actual = parser.Serialize(request);
  87. Assert.AreEqual(true, ValueEquals(expect.Take(expect.Length - 1), actual.Take(actual.Length - 1)), "actual: 0x" + actual.ToHexLogString());
  88. }
  89. [TestMethod]
  90. [ExpectedException(typeof(ArgumentException))]
  91. public void ChangePriceRequest_TestMethod3()
  92. {
  93. var request = new ChangePriceRequest(9999999, 3);
  94. var parser = new LanTian_Pump_664_Or_886.Parser();
  95. var expect = "F5 01 A5 12 25 34 B2 00".ToBytes();
  96. var actual = parser.Serialize(request);
  97. Assert.AreEqual(true, ValueEquals(expect.Take(expect.Length - 1), actual.Take(actual.Length - 1)), "actual: 0x" + actual.ToHexLogString());
  98. }
  99. [TestMethod]
  100. public void ChangePriceResponse_TestMethod1()
  101. {
  102. var raw = "F5 01 A3 59 B2 3C".ToBytes();
  103. var parser = new LanTian_Pump_664_Or_886.Parser();
  104. var actual = parser.Deserialize(raw) as ChangePriceResponse;
  105. Assert.AreEqual(true, actual != null);
  106. Assert.AreEqual(true, actual.Succeed);
  107. }
  108. [TestMethod]
  109. public void ChangePriceResponse_TestMethod2()
  110. {
  111. var raw = "F5 01 A3 4E B2 3C".ToBytes();
  112. var parser = new LanTian_Pump_664_Or_886.Parser();
  113. var actual = parser.Deserialize(raw) as ChangePriceResponse;
  114. Assert.AreEqual(true, actual != null);
  115. Assert.AreEqual(false, actual.Succeed);
  116. }
  117. [TestMethod]
  118. public void ReadPriceRequest_TestMethod1()
  119. {
  120. var request = new ReadPriceRequest();
  121. var parser = new LanTian_Pump_664_Or_886.Parser();
  122. var expect = "F5 01 A2 B6 60".ToBytes();
  123. var actual = parser.Serialize(request);
  124. Assert.AreEqual(true, ValueEquals(expect, actual), "actual: 0x" + actual.ToHexLogString());
  125. }
  126. [TestMethod]
  127. public void ReadPriceResponse_TestMethod1()
  128. {
  129. var raw = "F5 01 A5 00 00 05 B6 62".ToBytes();
  130. var parser = new LanTian_Pump_664_Or_886.Parser();
  131. var actual = parser.Deserialize(raw) as ReadPriceResponse;
  132. Assert.AreEqual(true, actual != null);
  133. Assert.AreEqual(true, actual.Price == 5);
  134. }
  135. [TestMethod]
  136. public void ReadPriceResponse_TestMethod2()
  137. {
  138. var raw = "F5 01 A4 00 05 B6 62".ToBytes();
  139. var parser = new LanTian_Pump_664_Or_886.Parser();
  140. var actual = parser.Deserialize(raw) as ReadPriceResponse;
  141. Assert.AreEqual(true, actual != null);
  142. Assert.AreEqual(true, actual.Price == 5);
  143. }
  144. [TestMethod]
  145. public void ReadPriceResponse_TestMethod3()
  146. {
  147. var raw = "F5 01 A4 98 76 B6 62".ToBytes();
  148. var parser = new LanTian_Pump_664_Or_886.Parser();
  149. var actual = parser.Deserialize(raw) as ReadPriceResponse;
  150. Assert.AreEqual(true, actual != null);
  151. Assert.AreEqual(true, actual.Price == 9876);
  152. }
  153. [TestMethod]
  154. public void ReadPriceResponse_TestMethod4()
  155. {
  156. var raw = "F5 01 A5 12 34 56 B6 62".ToBytes();
  157. var parser = new LanTian_Pump_664_Or_886.Parser();
  158. var actual = parser.Deserialize(raw) as ReadPriceResponse;
  159. Assert.AreEqual(true, actual != null);
  160. Assert.AreEqual(true, actual.Price == 123456);
  161. }
  162. [TestMethod]
  163. public void WriteCloseAheadValveThresholdRequest_TestMethod1()
  164. {
  165. var request = new WriteCloseAheadValveThresholdRequest(35);
  166. var parser = new LanTian_Pump_664_Or_886.Parser();
  167. var expect = "F5 01 A3 35 D2 30".ToBytes();
  168. var actual = parser.Serialize(request);
  169. Assert.AreEqual(true, ValueEquals(expect, actual), "actual: 0x" + actual.ToHexLogString());
  170. }
  171. [TestMethod]
  172. public void WriteCloseAheadValveThresholdRequest_TestMethod2()
  173. {
  174. var request = new WriteCloseAheadValveThresholdRequest(99);
  175. var parser = new LanTian_Pump_664_Or_886.Parser();
  176. var expect = "F5 01 A3 99 D2 30".ToBytes();
  177. var actual = parser.Serialize(request);
  178. Assert.AreEqual(true, ValueEquals(expect.Take(expect.Length - 1), actual.Take(actual.Length - 1)), "actual: 0x" + actual.ToHexLogString());
  179. }
  180. [TestMethod]
  181. public void WriteCloseAheadValveThresholdResponse_TestMethod1()
  182. {
  183. var raw = "F5 01 A2 D2 04".ToBytes();
  184. var parser = new LanTian_Pump_664_Or_886.Parser();
  185. var actual = parser.Deserialize(raw) as WriteCloseAheadValveThresholdResponse;
  186. Assert.AreEqual(true, actual != null);
  187. }
  188. [TestMethod]
  189. public void PresetAmountRequest_TestMethod1()
  190. {
  191. var request = new PresetAmountRequest(10, 4);
  192. var parser = new LanTian_Pump_664_Or_886.Parser();
  193. var expect = "F5 01 A6 00 00 00 10 B5 77".ToBytes();
  194. var actual = parser.Serialize(request);
  195. Assert.AreEqual(true, ValueEquals(expect, actual), "actual: 0x" + actual.ToHexLogString());
  196. }
  197. [TestMethod]
  198. public void PresetAmountRequest_TestMethod2()
  199. {
  200. var request = new PresetAmountRequest(99887766, 4);
  201. var parser = new LanTian_Pump_664_Or_886.Parser();
  202. var expect = "F5 01 A6 99 88 77 66 B5 77".ToBytes();
  203. var actual = parser.Serialize(request);
  204. Assert.AreEqual(true, ValueEquals(expect.Take(expect.Length - 1), actual.Take(actual.Length - 1)), "actual: 0x" + actual.ToHexLogString());
  205. }
  206. [TestMethod]
  207. public void PresetAmountRequest_TestMethod3()
  208. {
  209. var request = new PresetAmountRequest(998877, 3);
  210. var parser = new LanTian_Pump_664_Or_886.Parser();
  211. var expect = "F5 01 A5 99 88 77 B5 77".ToBytes();
  212. var actual = parser.Serialize(request);
  213. Assert.AreEqual(true, ValueEquals(expect.Take(expect.Length - 1), actual.Take(actual.Length - 1)), "actual: 0x" + actual.ToHexLogString());
  214. }
  215. [TestMethod]
  216. public void PresetAmountRequest_TestMethod4()
  217. {
  218. var request = new PresetAmountRequest(8877, 3);
  219. var parser = new LanTian_Pump_664_Or_886.Parser();
  220. var expect = "F5 01 A5 00 88 77 B5 77".ToBytes();
  221. var actual = parser.Serialize(request);
  222. Assert.AreEqual(true, ValueEquals(expect.Take(expect.Length - 1), actual.Take(actual.Length - 1)), "actual: 0x" + actual.ToHexLogString());
  223. }
  224. [TestMethod]
  225. public void PresetAmountResponse_TestMethod1()
  226. {
  227. var raw = "F5 01 A2 B5 63".ToBytes();
  228. var parser = new LanTian_Pump_664_Or_886.Parser();
  229. var actual = parser.Deserialize(raw) as PresetAmountResponse;
  230. Assert.AreEqual(true, actual != null);
  231. }
  232. [TestMethod]
  233. public void PresetVolumeRequest_TestMethod1()
  234. {
  235. var request = new PresetVolumeRequest(1000, 4);
  236. var parser = new LanTian_Pump_664_Or_886.Parser();
  237. var expect = "F5 01 A6 00 00 10 00 B9 7B".ToBytes();
  238. var actual = parser.Serialize(request);
  239. Assert.AreEqual(true, ValueEquals(expect, actual), "actual: 0x" + actual.ToHexLogString());
  240. }
  241. [TestMethod]
  242. public void PresetVolumeRequest_TestMethod2()
  243. {
  244. var request = new PresetVolumeRequest(99887766, 4);
  245. var parser = new LanTian_Pump_664_Or_886.Parser();
  246. var expect = "F5 01 A6 99 88 77 66 B9 77".ToBytes();
  247. var actual = parser.Serialize(request);
  248. Assert.AreEqual(true, ValueEquals(expect.Take(expect.Length - 1), actual.Take(actual.Length - 1)), "actual: 0x" + actual.ToHexLogString());
  249. }
  250. [TestMethod]
  251. public void PresetVolumeRequest_TestMethod3()
  252. {
  253. var request = new PresetVolumeRequest(998877, 3);
  254. var parser = new LanTian_Pump_664_Or_886.Parser();
  255. var expect = "F5 01 A5 99 88 77 B9 77".ToBytes();
  256. var actual = parser.Serialize(request);
  257. Assert.AreEqual(true, ValueEquals(expect.Take(expect.Length - 1), actual.Take(actual.Length - 1)), "actual: 0x" + actual.ToHexLogString());
  258. }
  259. [TestMethod]
  260. public void PresetVolumeRequest_TestMethod4()
  261. {
  262. var request = new PresetVolumeRequest(8877, 3);
  263. var parser = new LanTian_Pump_664_Or_886.Parser();
  264. var expect = "F5 01 A5 00 88 77 B9 77".ToBytes();
  265. var actual = parser.Serialize(request);
  266. Assert.AreEqual(true, ValueEquals(expect.Take(expect.Length - 1), actual.Take(actual.Length - 1)), "actual: 0x" + actual.ToHexLogString());
  267. }
  268. [TestMethod]
  269. public void PresetVolumeResponse_TestMethod1()
  270. {
  271. var raw = "F5 01 A2 B9 6F".ToBytes();
  272. var parser = new LanTian_Pump_664_Or_886.Parser();
  273. var actual = parser.Deserialize(raw) as PresetVolumeResponse;
  274. Assert.AreEqual(true, actual != null);
  275. }
  276. [TestMethod]
  277. public void ReadPumpStateRequest_TestMethod1()
  278. {
  279. var request = new ReadPumpStateRequest();
  280. var parser = new LanTian_Pump_664_Or_886.Parser();
  281. var expect = "F5 01 A2 D5 03".ToBytes();
  282. var actual = parser.Serialize(request);
  283. Assert.AreEqual(true, ValueEquals(expect, actual), "actual: 0x" + actual.ToHexLogString());
  284. }
  285. [TestMethod]
  286. public void ReadPumpStateResponse_TestMethod1()
  287. {
  288. var raw = "F5 01 A3 80 D5 02".ToBytes();
  289. var parser = new LanTian_Pump_664_Or_886.Parser();
  290. var actual = parser.Deserialize(raw) as ReadPumpStateResponse;
  291. Assert.AreEqual(true, actual != null);
  292. Assert.AreEqual(true, actual.NozzleState == ReadPumpStateResponse.NozzleStateEnum.挂枪);
  293. Assert.AreEqual(true, actual.StartOrStopState == ReadPumpStateResponse.StartOrStopStateEnum.停机);
  294. Assert.AreEqual(true, actual.ControlState == ReadPumpStateResponse.ControlStateEnum.自控);
  295. Assert.AreEqual(true, actual.ErrorState == ReadPumpStateResponse.ErrorStateEnum.无错误);
  296. Assert.AreEqual(true, actual.PaymentState == ReadPumpStateResponse.PaymentStateEnum.无支付请求);
  297. }
  298. [TestMethod]
  299. public void ReadPumpStateResponse_TestMethod2()
  300. {
  301. var raw = "F5 01 A3 00 D5 02".ToBytes();
  302. var parser = new LanTian_Pump_664_Or_886.Parser();
  303. var actual = parser.Deserialize(raw) as ReadPumpStateResponse;
  304. Assert.AreEqual(true, actual != null);
  305. Assert.AreEqual(true, actual.NozzleState == ReadPumpStateResponse.NozzleStateEnum.提枪);
  306. Assert.AreEqual(true, actual.StartOrStopState == ReadPumpStateResponse.StartOrStopStateEnum.停机);
  307. Assert.AreEqual(true, actual.ControlState == ReadPumpStateResponse.ControlStateEnum.自控);
  308. Assert.AreEqual(true, actual.ErrorState == ReadPumpStateResponse.ErrorStateEnum.无错误);
  309. Assert.AreEqual(true, actual.PaymentState == ReadPumpStateResponse.PaymentStateEnum.无支付请求);
  310. }
  311. [TestMethod]
  312. public void ReadPumpStateResponse_TestMethod3()
  313. {
  314. var raw = "F5 01 A3 AB D5 02".ToBytes();
  315. var parser = new LanTian_Pump_664_Or_886.Parser();
  316. var actual = parser.Deserialize(raw) as ReadPumpStateResponse;
  317. Assert.AreEqual(true, actual != null);
  318. Assert.AreEqual(true, actual.NozzleState == ReadPumpStateResponse.NozzleStateEnum.挂枪);
  319. Assert.AreEqual(true, actual.StartOrStopState == ReadPumpStateResponse.StartOrStopStateEnum.开机);
  320. Assert.AreEqual(true, actual.ControlState == ReadPumpStateResponse.ControlStateEnum.受控);
  321. Assert.AreEqual(true, actual.ErrorState == ReadPumpStateResponse.ErrorStateEnum.传感器错误);
  322. Assert.AreEqual(true, actual.PaymentState == ReadPumpStateResponse.PaymentStateEnum.POS支付请求);
  323. }
  324. [TestMethod]
  325. public void ReadPumpStateResponse_TestMethod4()
  326. {
  327. /*pump stop a fueling*/
  328. var raw = "F5 01 A3 08 D5 0A".ToBytes();
  329. var parser = new LanTian_Pump_664_Or_886.Parser();
  330. var actual = parser.Deserialize(raw) as ReadPumpStateResponse;
  331. Assert.AreEqual(true, actual != null);
  332. Assert.AreEqual(true, actual.NozzleState == ReadPumpStateResponse.NozzleStateEnum.提枪);
  333. Assert.AreEqual(true, actual.StartOrStopState == ReadPumpStateResponse.StartOrStopStateEnum.停机);
  334. Assert.AreEqual(true, actual.ControlState == ReadPumpStateResponse.ControlStateEnum.受控);
  335. Assert.AreEqual(true, actual.ErrorState == ReadPumpStateResponse.ErrorStateEnum.无错误);
  336. Assert.AreEqual(true, actual.PaymentState == ReadPumpStateResponse.PaymentStateEnum.无支付请求);
  337. }
  338. [TestMethod]
  339. public void ReadPumpStateResponse_TestMethod5()
  340. {
  341. /*pump stop a fueling*/
  342. var raw = "F5 01 A3 88 D5 0A".ToBytes();
  343. var parser = new LanTian_Pump_664_Or_886.Parser();
  344. var actual = parser.Deserialize(raw) as ReadPumpStateResponse;
  345. Assert.AreEqual(true, actual != null);
  346. Assert.AreEqual(true, actual.NozzleState == ReadPumpStateResponse.NozzleStateEnum.挂枪);
  347. Assert.AreEqual(true, actual.StartOrStopState == ReadPumpStateResponse.StartOrStopStateEnum.停机);
  348. Assert.AreEqual(true, actual.ControlState == ReadPumpStateResponse.ControlStateEnum.受控);
  349. Assert.AreEqual(true, actual.ErrorState == ReadPumpStateResponse.ErrorStateEnum.无错误);
  350. Assert.AreEqual(true, actual.PaymentState == ReadPumpStateResponse.PaymentStateEnum.无支付请求);
  351. }
  352. [TestMethod]
  353. public void ClearTotalizerRequest_TestMethod1()
  354. {
  355. var request = new ClearTotalizerRequest();
  356. var parser = new LanTian_Pump_664_Or_886.Parser();
  357. var expect = "F5 01 A2 CD 1B".ToBytes();
  358. var actual = parser.Serialize(request);
  359. Assert.AreEqual(true, ValueEquals(expect, actual), "actual: 0x" + actual.ToHexLogString());
  360. }
  361. [TestMethod]
  362. public void ClearTotalizerResponse_TestMethod1()
  363. {
  364. var raw = "F5 01 A3 59 CD 43".ToBytes();
  365. var parser = new LanTian_Pump_664_Or_886.Parser();
  366. var actual = parser.Deserialize(raw) as ClearTotalizerResponse;
  367. Assert.AreEqual(true, actual != null);
  368. Assert.AreEqual(true, actual.Succeed);
  369. }
  370. [TestMethod]
  371. public void ClearTotalizerResponse_TestMethod2()
  372. {
  373. var raw = "F5 01 A3 4E CD 43".ToBytes();
  374. var parser = new LanTian_Pump_664_Or_886.Parser();
  375. var actual = parser.Deserialize(raw) as ClearTotalizerResponse;
  376. Assert.AreEqual(true, actual != null);
  377. Assert.AreEqual(false, actual.Succeed);
  378. }
  379. [TestMethod]
  380. public void ReadFuelDataRequest_TestMethod1()
  381. {
  382. var request = new ReadFuelDataRequest();
  383. var parser = new LanTian_Pump_664_Or_886.Parser();
  384. var expect = "F5 01 A2 D9 0F".ToBytes();
  385. var actual = parser.Serialize(request);
  386. Assert.AreEqual(true, ValueEquals(expect, actual), "actual: 0x" + actual.ToHexLogString());
  387. }
  388. [TestMethod]
  389. public void ReadFuelDataResponse_TestMethod1()
  390. {
  391. var raw = "F5 01 AA 00 00 00 00 00 00 00 00 D9 07".ToBytes();
  392. var parser = new LanTian_Pump_664_Or_886.Parser();
  393. var actual = parser.Deserialize(raw) as ReadFuelDataResponse;
  394. Assert.AreEqual(true, actual != null);
  395. Assert.AreEqual(true, actual.Volume == 0);
  396. Assert.AreEqual(true, actual.Amount == 0);
  397. }
  398. [TestMethod]
  399. public void ReadFuelDataResponse_TestMethod2()
  400. {
  401. var raw = "F5 01 AA 12 34 56 78 99 88 77 66 D9 07".ToBytes();
  402. var parser = new LanTian_Pump_664_Or_886.Parser();
  403. var actual = parser.Deserialize(raw) as ReadFuelDataResponse;
  404. Assert.AreEqual(true, actual != null);
  405. Assert.AreEqual(true, actual.Volume == 12345678);
  406. Assert.AreEqual(true, actual.Amount == 99887766);
  407. }
  408. [TestMethod]
  409. public void ReadFuelDataResponse_TestMethod3()
  410. {
  411. var raw = "F5 01 A8 12 34 56 99 88 77 D9 07".ToBytes();
  412. var parser = new LanTian_Pump_664_Or_886.Parser();
  413. var actual = parser.Deserialize(raw) as ReadFuelDataResponse;
  414. Assert.AreEqual(true, actual != null);
  415. Assert.AreEqual(true, actual.Volume == 123456);
  416. Assert.AreEqual(true, actual.Amount == 998877);
  417. }
  418. [TestMethod]
  419. public void ReadTotalizerRequest_TestMethod1()
  420. {
  421. var request = new ReadTotalizerRequest();
  422. var parser = new LanTian_Pump_664_Or_886.Parser();
  423. var expect = "F5 01 A2 C5 13".ToBytes();
  424. var actual = parser.Serialize(request);
  425. Assert.AreEqual(true, ValueEquals(expect, actual), "actual: 0x" + actual.ToHexLogString());
  426. }
  427. [TestMethod]
  428. public void ReadTotalizerResponse_TestMethod1()
  429. {
  430. var raw = "F5 01 AE 00 00 00 00 90 00 00 00 00 00 00 15 C5 1A".ToBytes();
  431. var parser = new LanTian_Pump_664_Or_886.Parser();
  432. var actual = parser.Deserialize(raw) as ReadTotalizerResponse;
  433. Assert.AreEqual(true, actual != null);
  434. Assert.AreEqual(true, actual.VolumeTotalizer == 9000);
  435. Assert.AreEqual(true, actual.AmountTotalizer == 15);
  436. }
  437. [TestMethod]
  438. public void ReadTotalizerResponse_TestMethod2()
  439. {
  440. var raw = "F5 01 AE 10 00 00 00 90 98 76 54 32 10 33 15 C5 1A".ToBytes();
  441. var parser = new LanTian_Pump_664_Or_886.Parser();
  442. var actual = parser.Deserialize(raw) as ReadTotalizerResponse;
  443. Assert.AreEqual(true, actual != null);
  444. Assert.AreEqual(true, actual.VolumeTotalizer == 100000009098);
  445. Assert.AreEqual(true, actual.AmountTotalizer == 765432103315);
  446. }
  447. [TestMethod]
  448. public void ReadTotalizerResponse_TestMethod3()
  449. {
  450. var raw = "F5 01 AC 12 34 56 78 90 99 88 77 66 55 C5 1A".ToBytes();
  451. var parser = new LanTian_Pump_664_Or_886.Parser();
  452. var actual = parser.Deserialize(raw) as ReadTotalizerResponse;
  453. Assert.AreEqual(true, actual != null);
  454. Assert.AreEqual(true, actual.VolumeTotalizer == 1234567890);
  455. Assert.AreEqual(true, actual.AmountTotalizer == 9988776655);
  456. }
  457. [TestMethod]
  458. public void ReadShiftTotalizerRequest_TestMethod1()
  459. {
  460. var request = new ReadShiftTotalizerRequest();
  461. var parser = new LanTian_Pump_664_Or_886.Parser();
  462. var expect = "F5 01 A2 C7 11".ToBytes();
  463. var actual = parser.Serialize(request);
  464. Assert.AreEqual(true, ValueEquals(expect, actual), "actual: 0x" + actual.ToHexLogString());
  465. }
  466. [TestMethod]
  467. public void ReadShiftTotalizerResponse_TestMethod1()
  468. {
  469. var raw = "F5 01 AE 00 00 00 00 00 00 00 00 00 00 00 00 C7 1D".ToBytes();
  470. var parser = new LanTian_Pump_664_Or_886.Parser();
  471. var actual = parser.Deserialize(raw) as ReadShiftTotalizerResponse;
  472. Assert.AreEqual(true, actual != null);
  473. Assert.AreEqual(true, actual.VolumeTotalizer == 0);
  474. Assert.AreEqual(true, actual.AmountTotalizer == 0);
  475. }
  476. [TestMethod]
  477. public void ReadShiftTotalizerResponse_TestMethod2()
  478. {
  479. var raw = "F5 01 AE 10 00 00 00 90 98 76 54 32 10 33 15 C7 1A".ToBytes();
  480. var parser = new LanTian_Pump_664_Or_886.Parser();
  481. var actual = parser.Deserialize(raw) as ReadShiftTotalizerResponse;
  482. Assert.AreEqual(true, actual != null);
  483. Assert.AreEqual(true, actual.VolumeTotalizer == 100000009098);
  484. Assert.AreEqual(true, actual.AmountTotalizer == 765432103315);
  485. }
  486. [TestMethod]
  487. public void ReadShiftTotalizerResponse_TestMethod3()
  488. {
  489. var raw = "F5 01 AC 12 34 56 78 90 99 88 77 66 55 C7 1A".ToBytes();
  490. var parser = new LanTian_Pump_664_Or_886.Parser();
  491. var actual = parser.Deserialize(raw) as ReadShiftTotalizerResponse;
  492. Assert.AreEqual(true, actual != null);
  493. Assert.AreEqual(true, actual.VolumeTotalizer == 1234567890);
  494. Assert.AreEqual(true, actual.AmountTotalizer == 9988776655);
  495. }
  496. [TestMethod]
  497. public void OpenRequest_TestMethod1()
  498. {
  499. var request = new OpenRequest();
  500. var parser = new LanTian_Pump_664_Or_886.Parser();
  501. var expect = "F5 01 A2 C3 15".ToBytes();
  502. var actual = parser.Serialize(request);
  503. Assert.AreEqual(true, ValueEquals(expect, actual), "actual: 0x" + actual.ToHexLogString());
  504. }
  505. [TestMethod]
  506. public void OpenResponse_TestMethod1()
  507. {
  508. var raw = "F5 01 A3 4E C3 4D".ToBytes();
  509. var parser = new LanTian_Pump_664_Or_886.Parser();
  510. var actual = parser.Deserialize(raw) as OpenResponse;
  511. Assert.AreEqual(true, actual != null);
  512. Assert.AreEqual(false, actual.Succeed);
  513. }
  514. [TestMethod]
  515. public void OpenResponse_TestMethod2()
  516. {
  517. var raw = "F5 01 A3 59 C3 4D".ToBytes();
  518. var parser = new LanTian_Pump_664_Or_886.Parser();
  519. var actual = parser.Deserialize(raw) as OpenResponse;
  520. Assert.AreEqual(true, actual != null);
  521. Assert.AreEqual(true, actual.Succeed);
  522. }
  523. [TestMethod]
  524. public void CloseRequest_TestMethod1()
  525. {
  526. var request = new CloseRequest();
  527. var parser = new LanTian_Pump_664_Or_886.Parser();
  528. var expect = "F5 01 A2 CA 1C".ToBytes();
  529. var actual = parser.Serialize(request);
  530. Assert.AreEqual(true, ValueEquals(expect, actual), "actual: 0x" + actual.ToHexLogString());
  531. }
  532. [TestMethod]
  533. public void CloseResponse_TestMethod1()
  534. {
  535. var raw = "F5 01 A2 CA 1C".ToBytes();
  536. var parser = new LanTian_Pump_664_Or_886.Parser();
  537. var actual = parser.Deserialize(raw) as CloseResponse;
  538. Assert.AreEqual(true, actual != null);
  539. }
  540. [TestMethod]
  541. public void AcquireControlRequest_TestMethod1()
  542. {
  543. var request = new AcquireControlRequest();
  544. var parser = new LanTian_Pump_664_Or_886.Parser();
  545. var expect = "F5 01 A2 E5 33".ToBytes();
  546. var actual = parser.Serialize(request);
  547. Assert.AreEqual(true, ValueEquals(expect, actual), "actual: 0x" + actual.ToHexLogString());
  548. }
  549. [TestMethod]
  550. public void AcquireControlResponse_TestMethod1()
  551. {
  552. var raw = "F5 01 A2 E5 33".ToBytes();
  553. var parser = new LanTian_Pump_664_Or_886.Parser();
  554. var actual = parser.Deserialize(raw) as AcquireControlResponse;
  555. Assert.AreEqual(true, actual != null);
  556. }
  557. [TestMethod]
  558. public void AcquireReturnControlRequest_TestMethod1()
  559. {
  560. var request = new AcquireReturnControlRequest();
  561. var parser = new LanTian_Pump_664_Or_886.Parser();
  562. var expect = "F5 01 A2 E7 31".ToBytes();
  563. var actual = parser.Serialize(request);
  564. Assert.AreEqual(true, ValueEquals(expect, actual), "actual: 0x" + actual.ToHexLogString());
  565. }
  566. [TestMethod]
  567. public void AcquireReturnControlResponse_TestMethod1()
  568. {
  569. var raw = "F5 01 A2 E7 31".ToBytes();
  570. var parser = new LanTian_Pump_664_Or_886.Parser();
  571. var actual = parser.Deserialize(raw) as AcquireReturnControlResponse;
  572. Assert.AreEqual(true, actual != null);
  573. }
  574. [TestMethod]
  575. public void ClearShiftTotalizerRequest_TestMethod1()
  576. {
  577. var request = new ClearShiftTotalizerRequest();
  578. var parser = new LanTian_Pump_664_Or_886.Parser();
  579. /* looks like this sample from doc isn't correct, the XRL byte isn't correct, but still leave it here*/
  580. var expect = "F5 01 A2 EA 02".ToBytes();
  581. var actual = parser.Serialize(request);
  582. Assert.AreEqual(true, ValueEquals(expect, actual), "actual: 0x" + actual.ToHexLogString());
  583. }
  584. [TestMethod]
  585. public void ClearShiftTotalizerResponse_TestMethod1()
  586. {
  587. var raw = "F5 01 A2 EA 02".ToBytes();
  588. var parser = new LanTian_Pump_664_Or_886.Parser();
  589. var actual = parser.Deserialize(raw) as ClearShiftTotalizerResponse;
  590. Assert.AreEqual(true, actual != null);
  591. }
  592. [TestMethod]
  593. public void SuspendFuelRequest_TestMethod1()
  594. {
  595. var request = new SuspendFuelRequest();
  596. var parser = new LanTian_Pump_664_Or_886.Parser();
  597. var expect = "F5 01 A2 BA 6C".ToBytes();
  598. var actual = parser.Serialize(request);
  599. Assert.AreEqual(true, ValueEquals(expect, actual), "actual: 0x" + actual.ToHexLogString());
  600. }
  601. [TestMethod]
  602. public void SuspendFuelResponse_TestMethod1()
  603. {
  604. var raw = "F5 01 A2 BA 6C".ToBytes();
  605. var parser = new LanTian_Pump_664_Or_886.Parser();
  606. var actual = parser.Deserialize(raw) as SuspendFuelResponse;
  607. Assert.AreEqual(true, actual != null);
  608. }
  609. [TestMethod]
  610. public void ResumeFuelRequest_TestMethod1()
  611. {
  612. var request = new ResumeFuelRequest();
  613. var parser = new LanTian_Pump_664_Or_886.Parser();
  614. var expect = "F5 01 A2 B3 65".ToBytes();
  615. var actual = parser.Serialize(request);
  616. Assert.AreEqual(true, ValueEquals(expect, actual), "actual: 0x" + actual.ToHexLogString());
  617. }
  618. [TestMethod]
  619. public void ResumeFuelResponse_TestMethod1()
  620. {
  621. var raw = "F5 01 A2 B3 65".ToBytes();
  622. var parser = new LanTian_Pump_664_Or_886.Parser();
  623. var actual = parser.Deserialize(raw) as ResumeFuelResponse;
  624. Assert.AreEqual(true, actual != null);
  625. }
  626. }
  627. }