Outgoing_Message.cs 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772
  1. using Edge.Core.IndustryStandardInterface.ATG;
  2. using Microsoft.VisualStudio.TestTools.UnitTesting;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Text;
  7. using VeederRoot_ATG_Console.MessageEntity.Outgoing;
  8. using static VeederRoot_ATG_Console.MessageEntity.MessageBase;
  9. namespace VeederRoot_Test
  10. {
  11. [TestClass]
  12. public class Outgoing_Message
  13. {
  14. public static bool ValueEquals(IEnumerable<byte> array1, IEnumerable<byte> array2)
  15. {
  16. if (array1 == null && array2 == null)
  17. {
  18. return true;
  19. }
  20. if ((array1 == null) || (array2 == null))
  21. {
  22. return false;
  23. }
  24. if (array1.Count() != array2.Count())
  25. {
  26. return false;
  27. }
  28. if (array1.Equals(array2))
  29. {
  30. return true;
  31. }
  32. else
  33. {
  34. for (int Index = 0; Index < array1.Count(); Index++)
  35. {
  36. if (!Equals(array1.ElementAt(Index), array2.ElementAt(Index)))
  37. {
  38. return false;
  39. }
  40. }
  41. }
  42. return true;
  43. }
  44. #region QueryInTankInventoryReportRequest
  45. [TestMethod]
  46. public void QueryInTankInventoryReportRequest_TestMethod1()
  47. {
  48. int tankNumber = 1;
  49. var expected = new byte[] { 0x01 }
  50. .Concat(Encoding.ASCII.GetBytes("i201"))
  51. .Concat(Encoding.ASCII.GetBytes(tankNumber.ToString().PadLeft(2, '0')));
  52. var request = new QueryInTankInventoryReportRequest(
  53. MessageFormat.Computer, tankNumber);
  54. var p = new VeederRoot_ATG_Console.Parser();
  55. var actual = p.Serialize(request);
  56. Assert.AreEqual(true, ValueEquals(expected, actual));
  57. }
  58. [TestMethod]
  59. public void QueryInTankInventoryReportRequest_TestMethod2()
  60. {
  61. int tankNumber = 11;
  62. var expected = new byte[] { 0x01 }
  63. .Concat(Encoding.ASCII.GetBytes("i201"))
  64. .Concat(Encoding.ASCII.GetBytes(tankNumber.ToString().PadLeft(2, '0')));
  65. var request = new QueryInTankInventoryReportRequest(
  66. MessageFormat.Computer, tankNumber);
  67. var p = new VeederRoot_ATG_Console.Parser();
  68. var actual = p.Serialize(request);
  69. Assert.AreEqual(true, ValueEquals(expected, actual));
  70. }
  71. [TestMethod]
  72. public void QueryInTankInventoryReportRequest_TestMethod3()
  73. {
  74. int tankNumber = 0;
  75. var expected = new byte[] { 0x01 }
  76. .Concat(Encoding.ASCII.GetBytes("i201"))
  77. .Concat(Encoding.ASCII.GetBytes(tankNumber.ToString().PadLeft(2, '0')));
  78. var request = new QueryInTankInventoryReportRequest(
  79. MessageFormat.Computer, tankNumber);
  80. var p = new VeederRoot_ATG_Console.Parser();
  81. var actual = p.Serialize(request);
  82. Assert.AreEqual(true, ValueEquals(expected, actual));
  83. }
  84. [TestMethod]
  85. public void QueryInTankInventoryReportRequest_TestMethod4()
  86. {
  87. int tankNumber = 1;
  88. var expected = new byte[] { 0x01 }
  89. .Concat(Encoding.ASCII.GetBytes("I201"))
  90. .Concat(Encoding.ASCII.GetBytes(tankNumber.ToString().PadLeft(2, '0')));
  91. var request = new QueryInTankInventoryReportRequest(
  92. MessageFormat.Display, tankNumber);
  93. var p = new VeederRoot_ATG_Console.Parser();
  94. var actual = p.Serialize(request);
  95. Assert.AreEqual(true, ValueEquals(expected, actual));
  96. }
  97. [TestMethod]
  98. public void QueryInTankInventoryReportRequest_TestMethod5()
  99. {
  100. int tankNumber = 11;
  101. var expected = new byte[] { 0x01 }
  102. .Concat(Encoding.ASCII.GetBytes("I201"))
  103. .Concat(Encoding.ASCII.GetBytes(tankNumber.ToString().PadLeft(2, '0')));
  104. var request = new QueryInTankInventoryReportRequest(
  105. MessageFormat.Display, tankNumber);
  106. var p = new VeederRoot_ATG_Console.Parser();
  107. var actual = p.Serialize(request);
  108. Assert.AreEqual(true, ValueEquals(expected, actual));
  109. }
  110. [TestMethod]
  111. public void QueryInTankInventoryReportRequest_TestMethod6()
  112. {
  113. int tankNumber = 0;
  114. var expected = new byte[] { 0x01 }
  115. .Concat(Encoding.ASCII.GetBytes("I201"))
  116. .Concat(Encoding.ASCII.GetBytes(tankNumber.ToString().PadLeft(2, '0')));
  117. var request = new QueryInTankInventoryReportRequest(
  118. MessageFormat.Display, tankNumber);
  119. var p = new VeederRoot_ATG_Console.Parser();
  120. var actual = p.Serialize(request);
  121. Assert.AreEqual(true, ValueEquals(expected, actual));
  122. }
  123. #endregion
  124. #region QueryInTankMostRecentDeliveryReportRequest
  125. [TestMethod]
  126. public void QueryInTankMostRecentDeliveryReportRequest_TestMethod1()
  127. {
  128. int tankNumber = 1;
  129. var expected = new byte[] { 0x01 }
  130. .Concat(Encoding.ASCII.GetBytes("i20C"))
  131. .Concat(Encoding.ASCII.GetBytes(tankNumber.ToString().PadLeft(2, '0')));
  132. var request = new QueryInTankMostRecentDeliveryReportRequest(
  133. MessageFormat.Computer, tankNumber);
  134. var p = new VeederRoot_ATG_Console.Parser();
  135. var actual = p.Serialize(request);
  136. Assert.AreEqual(true, ValueEquals(expected, actual));
  137. }
  138. [TestMethod]
  139. public void QueryInTankMostRecentDeliveryReportRequest_TestMethod2()
  140. {
  141. int tankNumber = 11;
  142. var expected = new byte[] { 0x01 }
  143. .Concat(Encoding.ASCII.GetBytes("i20C"))
  144. .Concat(Encoding.ASCII.GetBytes(tankNumber.ToString().PadLeft(2, '0')));
  145. var request = new QueryInTankMostRecentDeliveryReportRequest(
  146. MessageFormat.Computer, tankNumber);
  147. var p = new VeederRoot_ATG_Console.Parser();
  148. var actual = p.Serialize(request);
  149. Assert.AreEqual(true, ValueEquals(expected, actual));
  150. }
  151. [TestMethod]
  152. public void QueryInTankMostRecentDeliveryReportRequest_TestMethod3()
  153. {
  154. int tankNumber = 4;
  155. var expected = new byte[] { 0x01 }
  156. .Concat(Encoding.ASCII.GetBytes("i20C"))
  157. .Concat(Encoding.ASCII.GetBytes(tankNumber.ToString().PadLeft(2, '0')));
  158. var request = new QueryInTankMostRecentDeliveryReportRequest(
  159. MessageFormat.Computer, tankNumber);
  160. var p = new VeederRoot_ATG_Console.Parser();
  161. var actual = p.Serialize(request);
  162. Assert.AreEqual(true, ValueEquals(expected, actual));
  163. }
  164. [TestMethod]
  165. public void QueryInTankMostRecentDeliveryReportRequest_TestMethod4()
  166. {
  167. int tankNumber = 22;
  168. var expected = new byte[] { 0x01 }
  169. .Concat(Encoding.ASCII.GetBytes("I20C"))
  170. .Concat(Encoding.ASCII.GetBytes(tankNumber.ToString().PadLeft(2, '0')));
  171. var request = new QueryInTankMostRecentDeliveryReportRequest(
  172. MessageFormat.Display, tankNumber);
  173. var p = new VeederRoot_ATG_Console.Parser();
  174. var actual = p.Serialize(request);
  175. Assert.AreEqual(true, ValueEquals(expected, actual));
  176. }
  177. [TestMethod]
  178. public void QueryInTankMostRecentDeliveryReportRequest_TestMethod5()
  179. {
  180. int tankNumber = 8;
  181. var expected = new byte[] { 0x01 }
  182. .Concat(Encoding.ASCII.GetBytes("I20C"))
  183. .Concat(Encoding.ASCII.GetBytes(tankNumber.ToString().PadLeft(2, '0')));
  184. var request = new QueryInTankMostRecentDeliveryReportRequest(
  185. MessageFormat.Display, tankNumber);
  186. var p = new VeederRoot_ATG_Console.Parser();
  187. var actual = p.Serialize(request);
  188. Assert.AreEqual(true, ValueEquals(expected, actual));
  189. }
  190. #endregion
  191. #region QueryInTankStatusReportRequest
  192. [TestMethod]
  193. public void QueryInTankStatusReportRequest_TestMethod1()
  194. {
  195. int tankNumber = 1;
  196. var expected = new byte[] { 0x01 }
  197. .Concat(Encoding.ASCII.GetBytes("i205"))
  198. .Concat(Encoding.ASCII.GetBytes(tankNumber.ToString().PadLeft(2, '0')));
  199. var request = new QueryInTankStatusReportRequest(
  200. MessageFormat.Computer, tankNumber);
  201. var p = new VeederRoot_ATG_Console.Parser();
  202. var actual = p.Serialize(request);
  203. Assert.AreEqual(true, ValueEquals(expected, actual));
  204. }
  205. [TestMethod]
  206. public void QueryInTankStatusReportRequest_TestMethod2()
  207. {
  208. int tankNumber = 11;
  209. var expected = new byte[] { 0x01 }
  210. .Concat(Encoding.ASCII.GetBytes("i205"))
  211. .Concat(Encoding.ASCII.GetBytes(tankNumber.ToString().PadLeft(2, '0')));
  212. var request = new QueryInTankStatusReportRequest(
  213. MessageFormat.Computer, tankNumber);
  214. var p = new VeederRoot_ATG_Console.Parser();
  215. var actual = p.Serialize(request);
  216. Assert.AreEqual(true, ValueEquals(expected, actual));
  217. }
  218. [TestMethod]
  219. public void QueryInTankStatusReportRequest_TestMethod3()
  220. {
  221. int tankNumber = 0;
  222. var expected = new byte[] { 0x01 }
  223. .Concat(Encoding.ASCII.GetBytes("i205"))
  224. .Concat(Encoding.ASCII.GetBytes(tankNumber.ToString().PadLeft(2, '0')));
  225. var request = new QueryInTankStatusReportRequest(
  226. MessageFormat.Computer, tankNumber);
  227. var p = new VeederRoot_ATG_Console.Parser();
  228. var actual = p.Serialize(request);
  229. Assert.AreEqual(true, ValueEquals(expected, actual));
  230. }
  231. [TestMethod]
  232. public void QueryInTankStatusReportRequest_TestMethod4()
  233. {
  234. int tankNumber = 22;
  235. var expected = new byte[] { 0x01 }
  236. .Concat(Encoding.ASCII.GetBytes("I205"))
  237. .Concat(Encoding.ASCII.GetBytes(tankNumber.ToString().PadLeft(2, '0')));
  238. var request = new QueryInTankStatusReportRequest(
  239. MessageFormat.Display, tankNumber);
  240. var p = new VeederRoot_ATG_Console.Parser();
  241. var actual = p.Serialize(request);
  242. Assert.AreEqual(true, ValueEquals(expected, actual));
  243. }
  244. [TestMethod]
  245. public void QueryInTankStatusReportRequest_TestMethod5()
  246. {
  247. int tankNumber = 8;
  248. var expected = new byte[] { 0x01 }
  249. .Concat(Encoding.ASCII.GetBytes("I205"))
  250. .Concat(Encoding.ASCII.GetBytes(tankNumber.ToString().PadLeft(2, '0')));
  251. var request = new QueryInTankStatusReportRequest(
  252. MessageFormat.Display, tankNumber);
  253. var p = new VeederRoot_ATG_Console.Parser();
  254. var actual = p.Serialize(request);
  255. Assert.AreEqual(true, ValueEquals(expected, actual));
  256. }
  257. #endregion
  258. #region QuerySystemStatusReportRequest
  259. [TestMethod]
  260. public void QuerySystemStatusReportRequest_TestMethod1()
  261. {
  262. var expected = new byte[] { 0x01 }
  263. .Concat(Encoding.ASCII.GetBytes("i10100"));
  264. var request = new QuerySystemStatusReportRequest(
  265. MessageFormat.Computer);
  266. var p = new VeederRoot_ATG_Console.Parser();
  267. var actual = p.Serialize(request);
  268. Assert.AreEqual(true, ValueEquals(expected, actual));
  269. }
  270. [TestMethod]
  271. public void QuerySystemStatusReportRequest_TestMethod2()
  272. {
  273. var expected = new byte[] { 0x01 }
  274. .Concat(Encoding.ASCII.GetBytes("I10100"));
  275. var request = new QuerySystemStatusReportRequest(
  276. MessageFormat.Display);
  277. var p = new VeederRoot_ATG_Console.Parser();
  278. var actual = p.Serialize(request);
  279. Assert.AreEqual(true, ValueEquals(expected, actual));
  280. }
  281. #endregion
  282. #region QueryTankDiameterRequest
  283. [TestMethod]
  284. public void QueryTankDiameterRequest_TestMethod1()
  285. {
  286. int tankNumber = 1;
  287. var expected = new byte[] { 0x01 }
  288. .Concat(Encoding.ASCII.GetBytes("i607"))
  289. .Concat(Encoding.ASCII.GetBytes(tankNumber.ToString().PadLeft(2, '0')));
  290. var request = new QueryTankDiameterRequest(
  291. MessageFormat.Computer, tankNumber);
  292. var p = new VeederRoot_ATG_Console.Parser();
  293. var actual = p.Serialize(request);
  294. Assert.AreEqual(true, ValueEquals(expected, actual));
  295. }
  296. [TestMethod]
  297. public void QueryTankDiameterRequest_TestMethod2()
  298. {
  299. int tankNumber = 11;
  300. var expected = new byte[] { 0x01 }
  301. .Concat(Encoding.ASCII.GetBytes("i607"))
  302. .Concat(Encoding.ASCII.GetBytes(tankNumber.ToString().PadLeft(2, '0')));
  303. var request = new QueryTankDiameterRequest(
  304. MessageFormat.Computer, tankNumber);
  305. var p = new VeederRoot_ATG_Console.Parser();
  306. var actual = p.Serialize(request);
  307. Assert.AreEqual(true, ValueEquals(expected, actual));
  308. }
  309. [TestMethod]
  310. public void QueryTankDiameterRequest_TestMethod3()
  311. {
  312. int tankNumber = 0;
  313. var expected = new byte[] { 0x01 }
  314. .Concat(Encoding.ASCII.GetBytes("i607"))
  315. .Concat(Encoding.ASCII.GetBytes(tankNumber.ToString().PadLeft(2, '0')));
  316. var request = new QueryTankDiameterRequest(
  317. MessageFormat.Computer, tankNumber);
  318. var p = new VeederRoot_ATG_Console.Parser();
  319. var actual = p.Serialize(request);
  320. Assert.AreEqual(true, ValueEquals(expected, actual));
  321. }
  322. [TestMethod]
  323. public void QueryTankDiameterRequest_TestMethod4()
  324. {
  325. int tankNumber = 22;
  326. var expected = new byte[] { 0x01 }
  327. .Concat(Encoding.ASCII.GetBytes("I607"))
  328. .Concat(Encoding.ASCII.GetBytes(tankNumber.ToString().PadLeft(2, '0')));
  329. var request = new QueryTankDiameterRequest(
  330. MessageFormat.Display, tankNumber);
  331. var p = new VeederRoot_ATG_Console.Parser();
  332. var actual = p.Serialize(request);
  333. Assert.AreEqual(true, ValueEquals(expected, actual));
  334. }
  335. [TestMethod]
  336. public void QueryTankDiameterRequest_TestMethod5()
  337. {
  338. int tankNumber = 4;
  339. var expected = new byte[] { 0x01 }
  340. .Concat(Encoding.ASCII.GetBytes("I607"))
  341. .Concat(Encoding.ASCII.GetBytes(tankNumber.ToString().PadLeft(2, '0')));
  342. var request = new QueryTankDiameterRequest(
  343. MessageFormat.Display, tankNumber);
  344. var p = new VeederRoot_ATG_Console.Parser();
  345. var actual = p.Serialize(request);
  346. Assert.AreEqual(true, ValueEquals(expected, actual));
  347. }
  348. [TestMethod]
  349. public void QueryTankDiameterRequest_TestMethod6()
  350. {
  351. int tankNumber = 8;
  352. var expected = new byte[] { 0x01 }
  353. .Concat(Encoding.ASCII.GetBytes("I607"))
  354. .Concat(Encoding.ASCII.GetBytes(tankNumber.ToString().PadLeft(2, '0')));
  355. var request = new QueryTankDiameterRequest(
  356. MessageFormat.Display, tankNumber);
  357. var p = new VeederRoot_ATG_Console.Parser();
  358. var actual = p.Serialize(request);
  359. Assert.AreEqual(true, ValueEquals(expected, actual));
  360. }
  361. #endregion
  362. #region QueryTankProductLabelRequest
  363. [TestMethod]
  364. public void QueryTankProductLabelRequest_TestMethod1()
  365. {
  366. int tankNumber = 1;
  367. var expected = new byte[] { 0x01 }
  368. .Concat(Encoding.ASCII.GetBytes("i602"))
  369. .Concat(Encoding.ASCII.GetBytes(tankNumber.ToString().PadLeft(2, '0')));
  370. var request = new QueryTankProductLabelRequest(
  371. MessageFormat.Computer, tankNumber);
  372. var p = new VeederRoot_ATG_Console.Parser();
  373. var actual = p.Serialize(request);
  374. Assert.AreEqual(true, ValueEquals(expected, actual));
  375. }
  376. [TestMethod]
  377. public void QueryTankProductLabelRequest_TestMethod2()
  378. {
  379. int tankNumber = 2;
  380. var expected = new byte[] { 0x01 }
  381. .Concat(Encoding.ASCII.GetBytes("i602"))
  382. .Concat(Encoding.ASCII.GetBytes(tankNumber.ToString().PadLeft(2, '0')));
  383. var request = new QueryTankProductLabelRequest(
  384. MessageFormat.Computer, tankNumber);
  385. var p = new VeederRoot_ATG_Console.Parser();
  386. var actual = p.Serialize(request);
  387. Assert.AreEqual(true, ValueEquals(expected, actual));
  388. }
  389. [TestMethod]
  390. public void QueryTankProductLabelRequest_TestMethod3()
  391. {
  392. int tankNumber = 3;
  393. var expected = new byte[] { 0x01 }
  394. .Concat(Encoding.ASCII.GetBytes("i602"))
  395. .Concat(Encoding.ASCII.GetBytes(tankNumber.ToString().PadLeft(2, '0')));
  396. var request = new QueryTankProductLabelRequest(
  397. MessageFormat.Computer, tankNumber);
  398. var p = new VeederRoot_ATG_Console.Parser();
  399. var actual = p.Serialize(request);
  400. Assert.AreEqual(true, ValueEquals(expected, actual));
  401. }
  402. [TestMethod]
  403. public void QueryTankProductLabelRequest_TestMethod4()
  404. {
  405. int tankNumber = 4;
  406. var expected = new byte[] { 0x01 }
  407. .Concat(Encoding.ASCII.GetBytes("I602"))
  408. .Concat(Encoding.ASCII.GetBytes(tankNumber.ToString().PadLeft(2, '0')));
  409. var request = new QueryTankProductLabelRequest(
  410. MessageFormat.Display, tankNumber);
  411. var p = new VeederRoot_ATG_Console.Parser();
  412. var actual = p.Serialize(request);
  413. Assert.AreEqual(true, ValueEquals(expected, actual));
  414. }
  415. [TestMethod]
  416. public void QueryTankProductLabelRequest_TestMethod5()
  417. {
  418. int tankNumber = 11;
  419. var expected = new byte[] { 0x01 }
  420. .Concat(Encoding.ASCII.GetBytes("I602"))
  421. .Concat(Encoding.ASCII.GetBytes(tankNumber.ToString().PadLeft(2, '0')));
  422. var request = new QueryTankProductLabelRequest(
  423. MessageFormat.Display, tankNumber);
  424. var p = new VeederRoot_ATG_Console.Parser();
  425. var actual = p.Serialize(request);
  426. Assert.AreEqual(true, ValueEquals(expected, actual));
  427. }
  428. [TestMethod]
  429. public void QueryTankProductLabelRequest_TestMethod6()
  430. {
  431. int tankNumber = 22;
  432. var expected = new byte[] { 0x01 }
  433. .Concat(Encoding.ASCII.GetBytes("I602"))
  434. .Concat(Encoding.ASCII.GetBytes(tankNumber.ToString().PadLeft(2, '0')));
  435. var request = new QueryTankProductLabelRequest(
  436. MessageFormat.Display, tankNumber);
  437. var p = new VeederRoot_ATG_Console.Parser();
  438. var actual = p.Serialize(request);
  439. Assert.AreEqual(true, ValueEquals(expected, actual));
  440. }
  441. #endregion
  442. #region Query or set TimeOfDayRequest
  443. [TestMethod]
  444. public void QueryTimeOfDayRequest_TestMethod1()
  445. {
  446. var expected = new byte[] { 0x01 }
  447. .Concat(Encoding.ASCII.GetBytes("i50100"));
  448. var request = new QueryTimeOfDayRequest(
  449. MessageFormat.Computer);
  450. var p = new VeederRoot_ATG_Console.Parser();
  451. var actual = p.Serialize(request);
  452. Assert.AreEqual(true, ValueEquals(expected, actual));
  453. }
  454. [TestMethod]
  455. public void QueryTimeOfDayRequest_TestMethod2()
  456. {
  457. var expected = new byte[] { 0x01 }
  458. .Concat(Encoding.ASCII.GetBytes("I50100"));
  459. var request = new QueryTimeOfDayRequest(
  460. MessageFormat.Display);
  461. var p = new VeederRoot_ATG_Console.Parser();
  462. var actual = p.Serialize(request);
  463. Assert.AreEqual(true, ValueEquals(expected, actual));
  464. }
  465. [TestMethod]
  466. public void SetTimeOfDayRequest_TestMethod1()
  467. {
  468. var newDateTime = new DateTime(1983, 10, 4, 8, 8, 8);
  469. var expected = new byte[] { 0x01 }
  470. .Concat(Encoding.ASCII.GetBytes("s50100"))
  471. .Concat(Encoding.ASCII.GetBytes(newDateTime.ToString("yyMMddHHmm")));
  472. var request = new SetTimeOfDayRequest(
  473. MessageFormat.Computer, newDateTime);
  474. var p = new VeederRoot_ATG_Console.Parser();
  475. var actual = p.Serialize(request);
  476. Assert.AreEqual(true, ValueEquals(expected, actual),
  477. System.Environment.NewLine
  478. + "expect: " + expected.Select(h => h.ToString("X2")).Aggregate((n, acc) => n + " " + acc)
  479. + System.Environment.NewLine
  480. + "actual: " + actual.Select(h => h.ToString("X2")).Aggregate((n, acc) => n + " " + acc));
  481. }
  482. [TestMethod]
  483. public void SetTimeOfDayRequest_TestMethod2()
  484. {
  485. var newDateTime = new DateTime(2019, 12, 24, 8, 8, 8);
  486. var expected = new byte[] { 0x01 }
  487. .Concat(Encoding.ASCII.GetBytes("s50100"))
  488. .Concat(Encoding.ASCII.GetBytes(newDateTime.ToString("yyMMddHHmm")));
  489. var request = new SetTimeOfDayRequest(
  490. MessageFormat.Computer, newDateTime);
  491. var p = new VeederRoot_ATG_Console.Parser();
  492. var actual = p.Serialize(request);
  493. Assert.AreEqual(true, ValueEquals(expected, actual),
  494. System.Environment.NewLine
  495. + "expect: " + expected.Select(h => h.ToString("X2")).Aggregate((n, acc) => n + " " + acc)
  496. + System.Environment.NewLine
  497. + "actual: " + actual.Select(h => h.ToString("X2")).Aggregate((n, acc) => n + " " + acc));
  498. }
  499. #endregion
  500. #region Query or set QuerySystemTypeAndLanguageFlags
  501. [TestMethod]
  502. public void QueryQuerySystemTypeAndLanguageFlagsRequest_TestMethod1()
  503. {
  504. var expected = new byte[] { 0x01 }
  505. .Concat(Encoding.ASCII.GetBytes("i50500"));
  506. var request = new QuerySystemTypeAndLanguageFlagsRequest(
  507. MessageFormat.Computer);
  508. var p = new VeederRoot_ATG_Console.Parser();
  509. var actual = p.Serialize(request);
  510. Assert.AreEqual(true, ValueEquals(expected, actual));
  511. }
  512. [TestMethod]
  513. public void QueryQuerySystemTypeAndLanguageFlagsRequest_TestMethod2()
  514. {
  515. var expected = new byte[] { 0x01 }
  516. .Concat(Encoding.ASCII.GetBytes("I50500"));
  517. var request = new QuerySystemTypeAndLanguageFlagsRequest(
  518. MessageFormat.Display);
  519. var p = new VeederRoot_ATG_Console.Parser();
  520. var actual = p.Serialize(request);
  521. Assert.AreEqual(true, ValueEquals(expected, actual));
  522. }
  523. [TestMethod]
  524. public void SetSystemTypeAndLanguageFlagsRequest_TestMethod1()
  525. {
  526. var systemUnit = SystemUnit.ImperialGallons;
  527. var lang = SystemLanguage.English;
  528. var expected = new byte[] { 0x01 }
  529. .Concat(Encoding.ASCII.GetBytes("s50500"))
  530. .Concat(Encoding.ASCII.GetBytes(((int)systemUnit).ToString() + ((int)lang).ToString()));
  531. var request = new SetSystemTypeAndLanguageFlagsRequest(
  532. MessageFormat.Computer, systemUnit
  533. , lang);
  534. var p = new VeederRoot_ATG_Console.Parser();
  535. var actual = p.Serialize(request);
  536. Assert.AreEqual(true, ValueEquals(expected, actual),
  537. System.Environment.NewLine
  538. + "expect: " + expected.Select(h => h.ToString("X2")).Aggregate((n, acc) => n + " " + acc)
  539. + System.Environment.NewLine
  540. + "actual: " + actual.Select(h => h.ToString("X2")).Aggregate((n, acc) => n + " " + acc));
  541. }
  542. [TestMethod]
  543. public void SetSystemTypeAndLanguageFlagsRequest_TestMethod2()
  544. {
  545. var systemUnit = SystemUnit.Metric;
  546. var lang = SystemLanguage.Finnish;
  547. var expected = new byte[] { 0x01 }
  548. .Concat(Encoding.ASCII.GetBytes("s50500"))
  549. .Concat(Encoding.ASCII.GetBytes(((int)systemUnit).ToString() + ((int)lang).ToString()));
  550. var request = new SetSystemTypeAndLanguageFlagsRequest(
  551. MessageFormat.Computer, systemUnit
  552. , lang);
  553. var p = new VeederRoot_ATG_Console.Parser();
  554. var actual = p.Serialize(request);
  555. Assert.AreEqual(true, ValueEquals(expected, actual),
  556. System.Environment.NewLine
  557. + "expect: " + expected.Select(h => h.ToString("X2")).Aggregate((n, acc) => n + " " + acc)
  558. + System.Environment.NewLine
  559. + "actual: " + actual.Select(h => h.ToString("X2")).Aggregate((n, acc) => n + " " + acc));
  560. }
  561. [TestMethod]
  562. public void SetSystemTypeAndLanguageFlagsRequest_TestMethod3()
  563. {
  564. var systemUnit = SystemUnit.US;
  565. var lang = SystemLanguage.Finnish;
  566. var expected = new byte[] { 0x01 }
  567. .Concat(Encoding.ASCII.GetBytes("s50500"))
  568. .Concat(Encoding.ASCII.GetBytes(((int)systemUnit).ToString() + ((int)lang).ToString()));
  569. var request = new SetSystemTypeAndLanguageFlagsRequest(
  570. MessageFormat.Computer, systemUnit
  571. , lang);
  572. var p = new VeederRoot_ATG_Console.Parser();
  573. var actual = p.Serialize(request);
  574. Assert.AreEqual(true, ValueEquals(expected, actual),
  575. System.Environment.NewLine
  576. + "expect: " + expected.Select(h => h.ToString("X2")).Aggregate((n, acc) => n + " " + acc)
  577. + System.Environment.NewLine
  578. + "actual: " + actual.Select(h => h.ToString("X2")).Aggregate((n, acc) => n + " " + acc));
  579. }
  580. #endregion
  581. #region SetTankDiameterRequest
  582. [TestMethod]
  583. public void SetTankDiameterRequest_TestMethod1()
  584. {
  585. var tankNumber = 1;
  586. double inches = 23.22;
  587. var expected = new byte[] { 0x01 }
  588. .Concat(Encoding.ASCII.GetBytes("s607" + tankNumber.ToString().PadLeft(2, '0')))
  589. .Concat(Encoding.ASCII.GetBytes(
  590. VeederRoot_ATG_Console.Util.ConvertDoubleToIEEE4Bytes(inches)
  591. .Select(b => b.ToString("X2")).Aggregate((acc, n) => acc + n)));
  592. var request = new SetTankDiameterRequest(
  593. MessageFormat.Computer, tankNumber
  594. , inches);
  595. var p = new VeederRoot_ATG_Console.Parser();
  596. var actual = p.Serialize(request);
  597. Assert.AreEqual(true, ValueEquals(expected, actual),
  598. System.Environment.NewLine
  599. + "expect: " + expected.Select(h => h.ToString("X2")).Aggregate((n, acc) => n + " " + acc)
  600. + System.Environment.NewLine
  601. + "actual: " + actual.Select(h => h.ToString("X2")).Aggregate((n, acc) => n + " " + acc));
  602. }
  603. [TestMethod]
  604. public void SetTankDiameterRequest_TestMethod2()
  605. {
  606. var tankNumber = 11;
  607. double inches = 13.22;
  608. var expected = new byte[] { 0x01 }
  609. .Concat(Encoding.ASCII.GetBytes("s607" + tankNumber.ToString().PadLeft(2, '0')))
  610. .Concat(Encoding.ASCII.GetBytes(
  611. VeederRoot_ATG_Console.Util.ConvertDoubleToIEEE4Bytes(inches)
  612. .Select(b => b.ToString("X2")).Aggregate((acc, n) => acc + n)));
  613. var request = new SetTankDiameterRequest(
  614. MessageFormat.Computer, tankNumber
  615. , inches);
  616. var p = new VeederRoot_ATG_Console.Parser();
  617. var actual = p.Serialize(request);
  618. Assert.AreEqual(true, ValueEquals(expected, actual),
  619. System.Environment.NewLine
  620. + "expect: " + expected.Select(h => h.ToString("X2")).Aggregate((n, acc) => n + " " + acc)
  621. + System.Environment.NewLine
  622. + "actual: " + actual.Select(h => h.ToString("X2")).Aggregate((n, acc) => n + " " + acc));
  623. }
  624. [TestMethod]
  625. public void SetTankDiameterRequest_TestMethod3()
  626. {
  627. var tankNumber = 22;
  628. double inches = 113.22;
  629. var expected = new byte[] { 0x01 }
  630. .Concat(Encoding.ASCII.GetBytes("s607" + tankNumber.ToString().PadLeft(2, '0')))
  631. .Concat(Encoding.ASCII.GetBytes(
  632. VeederRoot_ATG_Console.Util.ConvertDoubleToIEEE4Bytes(inches)
  633. .Select(b => b.ToString("X2")).Aggregate((acc, n) => acc + n)));
  634. var request = new SetTankDiameterRequest(
  635. MessageFormat.Computer, tankNumber
  636. , inches);
  637. var p = new VeederRoot_ATG_Console.Parser();
  638. var actual = p.Serialize(request);
  639. Assert.AreEqual(true, ValueEquals(expected, actual),
  640. System.Environment.NewLine
  641. + "expect: " + expected.Select(h => h.ToString("X2")).Aggregate((n, acc) => n + " " + acc)
  642. + System.Environment.NewLine
  643. + "actual: " + actual.Select(h => h.ToString("X2")).Aggregate((n, acc) => n + " " + acc));
  644. }
  645. #endregion
  646. #region SetTankProductLabelRequest
  647. [TestMethod]
  648. public void SetTankProductLabelRequest_TestMethod1()
  649. {
  650. var tankNumber = 22;
  651. var productLabel = "diesel S";
  652. var expected = new byte[] { 0x01 }
  653. .Concat(Encoding.ASCII.GetBytes("s602" + tankNumber.ToString().PadLeft(2, '0')))
  654. .Concat(Encoding.ASCII.GetBytes(productLabel.PadRight(20, ' ')));
  655. var request = new SetTankProductLabelRequest(
  656. MessageFormat.Computer, tankNumber, productLabel);
  657. var p = new VeederRoot_ATG_Console.Parser();
  658. var actual = p.Serialize(request);
  659. Assert.AreEqual(true, ValueEquals(expected, actual),
  660. System.Environment.NewLine
  661. + "expect: " + expected.Select(h => h.ToString("X2")).Aggregate((n, acc) => n + " " + acc)
  662. + System.Environment.NewLine
  663. + "actual: " + actual.Select(h => h.ToString("X2")).Aggregate((n, acc) => n + " " + acc));
  664. }
  665. [TestMethod]
  666. public void SetTankProductLabelRequest_TestMethod2()
  667. {
  668. var tankNumber = 1;
  669. var productLabel = "diesel asdfS";
  670. var expected = new byte[] { 0x01 }
  671. .Concat(Encoding.ASCII.GetBytes("s602" + tankNumber.ToString().PadLeft(2, '0')))
  672. .Concat(Encoding.ASCII.GetBytes(productLabel.PadRight(20, ' ')));
  673. var request = new SetTankProductLabelRequest(
  674. MessageFormat.Computer, tankNumber, productLabel);
  675. var p = new VeederRoot_ATG_Console.Parser();
  676. var actual = p.Serialize(request);
  677. Assert.AreEqual(true, ValueEquals(expected, actual),
  678. System.Environment.NewLine
  679. + "expect: " + expected.Select(h => h.ToString("X2")).Aggregate((n, acc) => n + " " + acc)
  680. + System.Environment.NewLine
  681. + "actual: " + actual.Select(h => h.ToString("X2")).Aggregate((n, acc) => n + " " + acc));
  682. }
  683. [TestMethod]
  684. public void SetTankProductLabelRequest_TestMethod3()
  685. {
  686. var tankNumber = 8;
  687. var productLabel = "REGULAR UNLEADED";
  688. var expected = new byte[] { 0x01 }
  689. .Concat(Encoding.ASCII.GetBytes("s602" + tankNumber.ToString().PadLeft(2, '0')))
  690. .Concat(Encoding.ASCII.GetBytes(productLabel.PadRight(20, ' ')));
  691. var request = new SetTankProductLabelRequest(
  692. MessageFormat.Computer, tankNumber, productLabel);
  693. var p = new VeederRoot_ATG_Console.Parser();
  694. var actual = p.Serialize(request);
  695. Assert.AreEqual(true, ValueEquals(expected, actual),
  696. System.Environment.NewLine
  697. + "expect: " + expected.Select(h => h.ToString("X2")).Aggregate((n, acc) => n + " " + acc)
  698. + System.Environment.NewLine
  699. + "actual: " + actual.Select(h => h.ToString("X2")).Aggregate((n, acc) => n + " " + acc));
  700. }
  701. #endregion
  702. }
  703. }