using Edge.Core.IndustryStandardInterface.ATG; using Microsoft.VisualStudio.TestTools.UnitTesting; using System; using System.Collections.Generic; using System.Linq; using System.Text; using VeederRoot_ATG_Console.MessageEntity.Outgoing; using static VeederRoot_ATG_Console.MessageEntity.MessageBase; namespace VeederRoot_Test { [TestClass] public class Outgoing_Message { public static bool ValueEquals(IEnumerable array1, IEnumerable array2) { if (array1 == null && array2 == null) { return true; } if ((array1 == null) || (array2 == null)) { return false; } if (array1.Count() != array2.Count()) { return false; } if (array1.Equals(array2)) { return true; } else { for (int Index = 0; Index < array1.Count(); Index++) { if (!Equals(array1.ElementAt(Index), array2.ElementAt(Index))) { return false; } } } return true; } #region QueryInTankInventoryReportRequest [TestMethod] public void QueryInTankInventoryReportRequest_TestMethod1() { int tankNumber = 1; var expected = new byte[] { 0x01 } .Concat(Encoding.ASCII.GetBytes("i201")) .Concat(Encoding.ASCII.GetBytes(tankNumber.ToString().PadLeft(2, '0'))); var request = new QueryInTankInventoryReportRequest( MessageFormat.Computer, tankNumber); var p = new VeederRoot_ATG_Console.Parser(); var actual = p.Serialize(request); Assert.AreEqual(true, ValueEquals(expected, actual)); } [TestMethod] public void QueryInTankInventoryReportRequest_TestMethod2() { int tankNumber = 11; var expected = new byte[] { 0x01 } .Concat(Encoding.ASCII.GetBytes("i201")) .Concat(Encoding.ASCII.GetBytes(tankNumber.ToString().PadLeft(2, '0'))); var request = new QueryInTankInventoryReportRequest( MessageFormat.Computer, tankNumber); var p = new VeederRoot_ATG_Console.Parser(); var actual = p.Serialize(request); Assert.AreEqual(true, ValueEquals(expected, actual)); } [TestMethod] public void QueryInTankInventoryReportRequest_TestMethod3() { int tankNumber = 0; var expected = new byte[] { 0x01 } .Concat(Encoding.ASCII.GetBytes("i201")) .Concat(Encoding.ASCII.GetBytes(tankNumber.ToString().PadLeft(2, '0'))); var request = new QueryInTankInventoryReportRequest( MessageFormat.Computer, tankNumber); var p = new VeederRoot_ATG_Console.Parser(); var actual = p.Serialize(request); Assert.AreEqual(true, ValueEquals(expected, actual)); } [TestMethod] public void QueryInTankInventoryReportRequest_TestMethod4() { int tankNumber = 1; var expected = new byte[] { 0x01 } .Concat(Encoding.ASCII.GetBytes("I201")) .Concat(Encoding.ASCII.GetBytes(tankNumber.ToString().PadLeft(2, '0'))); var request = new QueryInTankInventoryReportRequest( MessageFormat.Display, tankNumber); var p = new VeederRoot_ATG_Console.Parser(); var actual = p.Serialize(request); Assert.AreEqual(true, ValueEquals(expected, actual)); } [TestMethod] public void QueryInTankInventoryReportRequest_TestMethod5() { int tankNumber = 11; var expected = new byte[] { 0x01 } .Concat(Encoding.ASCII.GetBytes("I201")) .Concat(Encoding.ASCII.GetBytes(tankNumber.ToString().PadLeft(2, '0'))); var request = new QueryInTankInventoryReportRequest( MessageFormat.Display, tankNumber); var p = new VeederRoot_ATG_Console.Parser(); var actual = p.Serialize(request); Assert.AreEqual(true, ValueEquals(expected, actual)); } [TestMethod] public void QueryInTankInventoryReportRequest_TestMethod6() { int tankNumber = 0; var expected = new byte[] { 0x01 } .Concat(Encoding.ASCII.GetBytes("I201")) .Concat(Encoding.ASCII.GetBytes(tankNumber.ToString().PadLeft(2, '0'))); var request = new QueryInTankInventoryReportRequest( MessageFormat.Display, tankNumber); var p = new VeederRoot_ATG_Console.Parser(); var actual = p.Serialize(request); Assert.AreEqual(true, ValueEquals(expected, actual)); } #endregion #region QueryInTankMostRecentDeliveryReportRequest [TestMethod] public void QueryInTankMostRecentDeliveryReportRequest_TestMethod1() { int tankNumber = 1; var expected = new byte[] { 0x01 } .Concat(Encoding.ASCII.GetBytes("i20C")) .Concat(Encoding.ASCII.GetBytes(tankNumber.ToString().PadLeft(2, '0'))); var request = new QueryInTankMostRecentDeliveryReportRequest( MessageFormat.Computer, tankNumber); var p = new VeederRoot_ATG_Console.Parser(); var actual = p.Serialize(request); Assert.AreEqual(true, ValueEquals(expected, actual)); } [TestMethod] public void QueryInTankMostRecentDeliveryReportRequest_TestMethod2() { int tankNumber = 11; var expected = new byte[] { 0x01 } .Concat(Encoding.ASCII.GetBytes("i20C")) .Concat(Encoding.ASCII.GetBytes(tankNumber.ToString().PadLeft(2, '0'))); var request = new QueryInTankMostRecentDeliveryReportRequest( MessageFormat.Computer, tankNumber); var p = new VeederRoot_ATG_Console.Parser(); var actual = p.Serialize(request); Assert.AreEqual(true, ValueEquals(expected, actual)); } [TestMethod] public void QueryInTankMostRecentDeliveryReportRequest_TestMethod3() { int tankNumber = 4; var expected = new byte[] { 0x01 } .Concat(Encoding.ASCII.GetBytes("i20C")) .Concat(Encoding.ASCII.GetBytes(tankNumber.ToString().PadLeft(2, '0'))); var request = new QueryInTankMostRecentDeliveryReportRequest( MessageFormat.Computer, tankNumber); var p = new VeederRoot_ATG_Console.Parser(); var actual = p.Serialize(request); Assert.AreEqual(true, ValueEquals(expected, actual)); } [TestMethod] public void QueryInTankMostRecentDeliveryReportRequest_TestMethod4() { int tankNumber = 22; var expected = new byte[] { 0x01 } .Concat(Encoding.ASCII.GetBytes("I20C")) .Concat(Encoding.ASCII.GetBytes(tankNumber.ToString().PadLeft(2, '0'))); var request = new QueryInTankMostRecentDeliveryReportRequest( MessageFormat.Display, tankNumber); var p = new VeederRoot_ATG_Console.Parser(); var actual = p.Serialize(request); Assert.AreEqual(true, ValueEquals(expected, actual)); } [TestMethod] public void QueryInTankMostRecentDeliveryReportRequest_TestMethod5() { int tankNumber = 8; var expected = new byte[] { 0x01 } .Concat(Encoding.ASCII.GetBytes("I20C")) .Concat(Encoding.ASCII.GetBytes(tankNumber.ToString().PadLeft(2, '0'))); var request = new QueryInTankMostRecentDeliveryReportRequest( MessageFormat.Display, tankNumber); var p = new VeederRoot_ATG_Console.Parser(); var actual = p.Serialize(request); Assert.AreEqual(true, ValueEquals(expected, actual)); } #endregion #region QueryInTankStatusReportRequest [TestMethod] public void QueryInTankStatusReportRequest_TestMethod1() { int tankNumber = 1; var expected = new byte[] { 0x01 } .Concat(Encoding.ASCII.GetBytes("i205")) .Concat(Encoding.ASCII.GetBytes(tankNumber.ToString().PadLeft(2, '0'))); var request = new QueryInTankStatusReportRequest( MessageFormat.Computer, tankNumber); var p = new VeederRoot_ATG_Console.Parser(); var actual = p.Serialize(request); Assert.AreEqual(true, ValueEquals(expected, actual)); } [TestMethod] public void QueryInTankStatusReportRequest_TestMethod2() { int tankNumber = 11; var expected = new byte[] { 0x01 } .Concat(Encoding.ASCII.GetBytes("i205")) .Concat(Encoding.ASCII.GetBytes(tankNumber.ToString().PadLeft(2, '0'))); var request = new QueryInTankStatusReportRequest( MessageFormat.Computer, tankNumber); var p = new VeederRoot_ATG_Console.Parser(); var actual = p.Serialize(request); Assert.AreEqual(true, ValueEquals(expected, actual)); } [TestMethod] public void QueryInTankStatusReportRequest_TestMethod3() { int tankNumber = 0; var expected = new byte[] { 0x01 } .Concat(Encoding.ASCII.GetBytes("i205")) .Concat(Encoding.ASCII.GetBytes(tankNumber.ToString().PadLeft(2, '0'))); var request = new QueryInTankStatusReportRequest( MessageFormat.Computer, tankNumber); var p = new VeederRoot_ATG_Console.Parser(); var actual = p.Serialize(request); Assert.AreEqual(true, ValueEquals(expected, actual)); } [TestMethod] public void QueryInTankStatusReportRequest_TestMethod4() { int tankNumber = 22; var expected = new byte[] { 0x01 } .Concat(Encoding.ASCII.GetBytes("I205")) .Concat(Encoding.ASCII.GetBytes(tankNumber.ToString().PadLeft(2, '0'))); var request = new QueryInTankStatusReportRequest( MessageFormat.Display, tankNumber); var p = new VeederRoot_ATG_Console.Parser(); var actual = p.Serialize(request); Assert.AreEqual(true, ValueEquals(expected, actual)); } [TestMethod] public void QueryInTankStatusReportRequest_TestMethod5() { int tankNumber = 8; var expected = new byte[] { 0x01 } .Concat(Encoding.ASCII.GetBytes("I205")) .Concat(Encoding.ASCII.GetBytes(tankNumber.ToString().PadLeft(2, '0'))); var request = new QueryInTankStatusReportRequest( MessageFormat.Display, tankNumber); var p = new VeederRoot_ATG_Console.Parser(); var actual = p.Serialize(request); Assert.AreEqual(true, ValueEquals(expected, actual)); } #endregion #region QuerySystemStatusReportRequest [TestMethod] public void QuerySystemStatusReportRequest_TestMethod1() { var expected = new byte[] { 0x01 } .Concat(Encoding.ASCII.GetBytes("i10100")); var request = new QuerySystemStatusReportRequest( MessageFormat.Computer); var p = new VeederRoot_ATG_Console.Parser(); var actual = p.Serialize(request); Assert.AreEqual(true, ValueEquals(expected, actual)); } [TestMethod] public void QuerySystemStatusReportRequest_TestMethod2() { var expected = new byte[] { 0x01 } .Concat(Encoding.ASCII.GetBytes("I10100")); var request = new QuerySystemStatusReportRequest( MessageFormat.Display); var p = new VeederRoot_ATG_Console.Parser(); var actual = p.Serialize(request); Assert.AreEqual(true, ValueEquals(expected, actual)); } #endregion #region QueryTankDiameterRequest [TestMethod] public void QueryTankDiameterRequest_TestMethod1() { int tankNumber = 1; var expected = new byte[] { 0x01 } .Concat(Encoding.ASCII.GetBytes("i607")) .Concat(Encoding.ASCII.GetBytes(tankNumber.ToString().PadLeft(2, '0'))); var request = new QueryTankDiameterRequest( MessageFormat.Computer, tankNumber); var p = new VeederRoot_ATG_Console.Parser(); var actual = p.Serialize(request); Assert.AreEqual(true, ValueEquals(expected, actual)); } [TestMethod] public void QueryTankDiameterRequest_TestMethod2() { int tankNumber = 11; var expected = new byte[] { 0x01 } .Concat(Encoding.ASCII.GetBytes("i607")) .Concat(Encoding.ASCII.GetBytes(tankNumber.ToString().PadLeft(2, '0'))); var request = new QueryTankDiameterRequest( MessageFormat.Computer, tankNumber); var p = new VeederRoot_ATG_Console.Parser(); var actual = p.Serialize(request); Assert.AreEqual(true, ValueEquals(expected, actual)); } [TestMethod] public void QueryTankDiameterRequest_TestMethod3() { int tankNumber = 0; var expected = new byte[] { 0x01 } .Concat(Encoding.ASCII.GetBytes("i607")) .Concat(Encoding.ASCII.GetBytes(tankNumber.ToString().PadLeft(2, '0'))); var request = new QueryTankDiameterRequest( MessageFormat.Computer, tankNumber); var p = new VeederRoot_ATG_Console.Parser(); var actual = p.Serialize(request); Assert.AreEqual(true, ValueEquals(expected, actual)); } [TestMethod] public void QueryTankDiameterRequest_TestMethod4() { int tankNumber = 22; var expected = new byte[] { 0x01 } .Concat(Encoding.ASCII.GetBytes("I607")) .Concat(Encoding.ASCII.GetBytes(tankNumber.ToString().PadLeft(2, '0'))); var request = new QueryTankDiameterRequest( MessageFormat.Display, tankNumber); var p = new VeederRoot_ATG_Console.Parser(); var actual = p.Serialize(request); Assert.AreEqual(true, ValueEquals(expected, actual)); } [TestMethod] public void QueryTankDiameterRequest_TestMethod5() { int tankNumber = 4; var expected = new byte[] { 0x01 } .Concat(Encoding.ASCII.GetBytes("I607")) .Concat(Encoding.ASCII.GetBytes(tankNumber.ToString().PadLeft(2, '0'))); var request = new QueryTankDiameterRequest( MessageFormat.Display, tankNumber); var p = new VeederRoot_ATG_Console.Parser(); var actual = p.Serialize(request); Assert.AreEqual(true, ValueEquals(expected, actual)); } [TestMethod] public void QueryTankDiameterRequest_TestMethod6() { int tankNumber = 8; var expected = new byte[] { 0x01 } .Concat(Encoding.ASCII.GetBytes("I607")) .Concat(Encoding.ASCII.GetBytes(tankNumber.ToString().PadLeft(2, '0'))); var request = new QueryTankDiameterRequest( MessageFormat.Display, tankNumber); var p = new VeederRoot_ATG_Console.Parser(); var actual = p.Serialize(request); Assert.AreEqual(true, ValueEquals(expected, actual)); } #endregion #region QueryTankProductLabelRequest [TestMethod] public void QueryTankProductLabelRequest_TestMethod1() { int tankNumber = 1; var expected = new byte[] { 0x01 } .Concat(Encoding.ASCII.GetBytes("i602")) .Concat(Encoding.ASCII.GetBytes(tankNumber.ToString().PadLeft(2, '0'))); var request = new QueryTankProductLabelRequest( MessageFormat.Computer, tankNumber); var p = new VeederRoot_ATG_Console.Parser(); var actual = p.Serialize(request); Assert.AreEqual(true, ValueEquals(expected, actual)); } [TestMethod] public void QueryTankProductLabelRequest_TestMethod2() { int tankNumber = 2; var expected = new byte[] { 0x01 } .Concat(Encoding.ASCII.GetBytes("i602")) .Concat(Encoding.ASCII.GetBytes(tankNumber.ToString().PadLeft(2, '0'))); var request = new QueryTankProductLabelRequest( MessageFormat.Computer, tankNumber); var p = new VeederRoot_ATG_Console.Parser(); var actual = p.Serialize(request); Assert.AreEqual(true, ValueEquals(expected, actual)); } [TestMethod] public void QueryTankProductLabelRequest_TestMethod3() { int tankNumber = 3; var expected = new byte[] { 0x01 } .Concat(Encoding.ASCII.GetBytes("i602")) .Concat(Encoding.ASCII.GetBytes(tankNumber.ToString().PadLeft(2, '0'))); var request = new QueryTankProductLabelRequest( MessageFormat.Computer, tankNumber); var p = new VeederRoot_ATG_Console.Parser(); var actual = p.Serialize(request); Assert.AreEqual(true, ValueEquals(expected, actual)); } [TestMethod] public void QueryTankProductLabelRequest_TestMethod4() { int tankNumber = 4; var expected = new byte[] { 0x01 } .Concat(Encoding.ASCII.GetBytes("I602")) .Concat(Encoding.ASCII.GetBytes(tankNumber.ToString().PadLeft(2, '0'))); var request = new QueryTankProductLabelRequest( MessageFormat.Display, tankNumber); var p = new VeederRoot_ATG_Console.Parser(); var actual = p.Serialize(request); Assert.AreEqual(true, ValueEquals(expected, actual)); } [TestMethod] public void QueryTankProductLabelRequest_TestMethod5() { int tankNumber = 11; var expected = new byte[] { 0x01 } .Concat(Encoding.ASCII.GetBytes("I602")) .Concat(Encoding.ASCII.GetBytes(tankNumber.ToString().PadLeft(2, '0'))); var request = new QueryTankProductLabelRequest( MessageFormat.Display, tankNumber); var p = new VeederRoot_ATG_Console.Parser(); var actual = p.Serialize(request); Assert.AreEqual(true, ValueEquals(expected, actual)); } [TestMethod] public void QueryTankProductLabelRequest_TestMethod6() { int tankNumber = 22; var expected = new byte[] { 0x01 } .Concat(Encoding.ASCII.GetBytes("I602")) .Concat(Encoding.ASCII.GetBytes(tankNumber.ToString().PadLeft(2, '0'))); var request = new QueryTankProductLabelRequest( MessageFormat.Display, tankNumber); var p = new VeederRoot_ATG_Console.Parser(); var actual = p.Serialize(request); Assert.AreEqual(true, ValueEquals(expected, actual)); } #endregion #region Query or set TimeOfDayRequest [TestMethod] public void QueryTimeOfDayRequest_TestMethod1() { var expected = new byte[] { 0x01 } .Concat(Encoding.ASCII.GetBytes("i50100")); var request = new QueryTimeOfDayRequest( MessageFormat.Computer); var p = new VeederRoot_ATG_Console.Parser(); var actual = p.Serialize(request); Assert.AreEqual(true, ValueEquals(expected, actual)); } [TestMethod] public void QueryTimeOfDayRequest_TestMethod2() { var expected = new byte[] { 0x01 } .Concat(Encoding.ASCII.GetBytes("I50100")); var request = new QueryTimeOfDayRequest( MessageFormat.Display); var p = new VeederRoot_ATG_Console.Parser(); var actual = p.Serialize(request); Assert.AreEqual(true, ValueEquals(expected, actual)); } [TestMethod] public void SetTimeOfDayRequest_TestMethod1() { var newDateTime = new DateTime(1983, 10, 4, 8, 8, 8); var expected = new byte[] { 0x01 } .Concat(Encoding.ASCII.GetBytes("s50100")) .Concat(Encoding.ASCII.GetBytes(newDateTime.ToString("yyMMddHHmm"))); var request = new SetTimeOfDayRequest( MessageFormat.Computer, newDateTime); var p = new VeederRoot_ATG_Console.Parser(); var actual = p.Serialize(request); Assert.AreEqual(true, ValueEquals(expected, actual), System.Environment.NewLine + "expect: " + expected.Select(h => h.ToString("X2")).Aggregate((n, acc) => n + " " + acc) + System.Environment.NewLine + "actual: " + actual.Select(h => h.ToString("X2")).Aggregate((n, acc) => n + " " + acc)); } [TestMethod] public void SetTimeOfDayRequest_TestMethod2() { var newDateTime = new DateTime(2019, 12, 24, 8, 8, 8); var expected = new byte[] { 0x01 } .Concat(Encoding.ASCII.GetBytes("s50100")) .Concat(Encoding.ASCII.GetBytes(newDateTime.ToString("yyMMddHHmm"))); var request = new SetTimeOfDayRequest( MessageFormat.Computer, newDateTime); var p = new VeederRoot_ATG_Console.Parser(); var actual = p.Serialize(request); Assert.AreEqual(true, ValueEquals(expected, actual), System.Environment.NewLine + "expect: " + expected.Select(h => h.ToString("X2")).Aggregate((n, acc) => n + " " + acc) + System.Environment.NewLine + "actual: " + actual.Select(h => h.ToString("X2")).Aggregate((n, acc) => n + " " + acc)); } #endregion #region Query or set QuerySystemTypeAndLanguageFlags [TestMethod] public void QueryQuerySystemTypeAndLanguageFlagsRequest_TestMethod1() { var expected = new byte[] { 0x01 } .Concat(Encoding.ASCII.GetBytes("i50500")); var request = new QuerySystemTypeAndLanguageFlagsRequest( MessageFormat.Computer); var p = new VeederRoot_ATG_Console.Parser(); var actual = p.Serialize(request); Assert.AreEqual(true, ValueEquals(expected, actual)); } [TestMethod] public void QueryQuerySystemTypeAndLanguageFlagsRequest_TestMethod2() { var expected = new byte[] { 0x01 } .Concat(Encoding.ASCII.GetBytes("I50500")); var request = new QuerySystemTypeAndLanguageFlagsRequest( MessageFormat.Display); var p = new VeederRoot_ATG_Console.Parser(); var actual = p.Serialize(request); Assert.AreEqual(true, ValueEquals(expected, actual)); } [TestMethod] public void SetSystemTypeAndLanguageFlagsRequest_TestMethod1() { var systemUnit = SystemUnit.ImperialGallons; var lang = SystemLanguage.English; var expected = new byte[] { 0x01 } .Concat(Encoding.ASCII.GetBytes("s50500")) .Concat(Encoding.ASCII.GetBytes(((int)systemUnit).ToString() + ((int)lang).ToString())); var request = new SetSystemTypeAndLanguageFlagsRequest( MessageFormat.Computer, systemUnit , lang); var p = new VeederRoot_ATG_Console.Parser(); var actual = p.Serialize(request); Assert.AreEqual(true, ValueEquals(expected, actual), System.Environment.NewLine + "expect: " + expected.Select(h => h.ToString("X2")).Aggregate((n, acc) => n + " " + acc) + System.Environment.NewLine + "actual: " + actual.Select(h => h.ToString("X2")).Aggregate((n, acc) => n + " " + acc)); } [TestMethod] public void SetSystemTypeAndLanguageFlagsRequest_TestMethod2() { var systemUnit = SystemUnit.Metric; var lang = SystemLanguage.Finnish; var expected = new byte[] { 0x01 } .Concat(Encoding.ASCII.GetBytes("s50500")) .Concat(Encoding.ASCII.GetBytes(((int)systemUnit).ToString() + ((int)lang).ToString())); var request = new SetSystemTypeAndLanguageFlagsRequest( MessageFormat.Computer, systemUnit , lang); var p = new VeederRoot_ATG_Console.Parser(); var actual = p.Serialize(request); Assert.AreEqual(true, ValueEquals(expected, actual), System.Environment.NewLine + "expect: " + expected.Select(h => h.ToString("X2")).Aggregate((n, acc) => n + " " + acc) + System.Environment.NewLine + "actual: " + actual.Select(h => h.ToString("X2")).Aggregate((n, acc) => n + " " + acc)); } [TestMethod] public void SetSystemTypeAndLanguageFlagsRequest_TestMethod3() { var systemUnit = SystemUnit.US; var lang = SystemLanguage.Finnish; var expected = new byte[] { 0x01 } .Concat(Encoding.ASCII.GetBytes("s50500")) .Concat(Encoding.ASCII.GetBytes(((int)systemUnit).ToString() + ((int)lang).ToString())); var request = new SetSystemTypeAndLanguageFlagsRequest( MessageFormat.Computer, systemUnit , lang); var p = new VeederRoot_ATG_Console.Parser(); var actual = p.Serialize(request); Assert.AreEqual(true, ValueEquals(expected, actual), System.Environment.NewLine + "expect: " + expected.Select(h => h.ToString("X2")).Aggregate((n, acc) => n + " " + acc) + System.Environment.NewLine + "actual: " + actual.Select(h => h.ToString("X2")).Aggregate((n, acc) => n + " " + acc)); } #endregion #region SetTankDiameterRequest [TestMethod] public void SetTankDiameterRequest_TestMethod1() { var tankNumber = 1; double inches = 23.22; var expected = new byte[] { 0x01 } .Concat(Encoding.ASCII.GetBytes("s607" + tankNumber.ToString().PadLeft(2, '0'))) .Concat(Encoding.ASCII.GetBytes( VeederRoot_ATG_Console.Util.ConvertDoubleToIEEE4Bytes(inches) .Select(b => b.ToString("X2")).Aggregate((acc, n) => acc + n))); var request = new SetTankDiameterRequest( MessageFormat.Computer, tankNumber , inches); var p = new VeederRoot_ATG_Console.Parser(); var actual = p.Serialize(request); Assert.AreEqual(true, ValueEquals(expected, actual), System.Environment.NewLine + "expect: " + expected.Select(h => h.ToString("X2")).Aggregate((n, acc) => n + " " + acc) + System.Environment.NewLine + "actual: " + actual.Select(h => h.ToString("X2")).Aggregate((n, acc) => n + " " + acc)); } [TestMethod] public void SetTankDiameterRequest_TestMethod2() { var tankNumber = 11; double inches = 13.22; var expected = new byte[] { 0x01 } .Concat(Encoding.ASCII.GetBytes("s607" + tankNumber.ToString().PadLeft(2, '0'))) .Concat(Encoding.ASCII.GetBytes( VeederRoot_ATG_Console.Util.ConvertDoubleToIEEE4Bytes(inches) .Select(b => b.ToString("X2")).Aggregate((acc, n) => acc + n))); var request = new SetTankDiameterRequest( MessageFormat.Computer, tankNumber , inches); var p = new VeederRoot_ATG_Console.Parser(); var actual = p.Serialize(request); Assert.AreEqual(true, ValueEquals(expected, actual), System.Environment.NewLine + "expect: " + expected.Select(h => h.ToString("X2")).Aggregate((n, acc) => n + " " + acc) + System.Environment.NewLine + "actual: " + actual.Select(h => h.ToString("X2")).Aggregate((n, acc) => n + " " + acc)); } [TestMethod] public void SetTankDiameterRequest_TestMethod3() { var tankNumber = 22; double inches = 113.22; var expected = new byte[] { 0x01 } .Concat(Encoding.ASCII.GetBytes("s607" + tankNumber.ToString().PadLeft(2, '0'))) .Concat(Encoding.ASCII.GetBytes( VeederRoot_ATG_Console.Util.ConvertDoubleToIEEE4Bytes(inches) .Select(b => b.ToString("X2")).Aggregate((acc, n) => acc + n))); var request = new SetTankDiameterRequest( MessageFormat.Computer, tankNumber , inches); var p = new VeederRoot_ATG_Console.Parser(); var actual = p.Serialize(request); Assert.AreEqual(true, ValueEquals(expected, actual), System.Environment.NewLine + "expect: " + expected.Select(h => h.ToString("X2")).Aggregate((n, acc) => n + " " + acc) + System.Environment.NewLine + "actual: " + actual.Select(h => h.ToString("X2")).Aggregate((n, acc) => n + " " + acc)); } #endregion #region SetTankProductLabelRequest [TestMethod] public void SetTankProductLabelRequest_TestMethod1() { var tankNumber = 22; var productLabel = "diesel S"; var expected = new byte[] { 0x01 } .Concat(Encoding.ASCII.GetBytes("s602" + tankNumber.ToString().PadLeft(2, '0'))) .Concat(Encoding.ASCII.GetBytes(productLabel.PadRight(20, ' '))); var request = new SetTankProductLabelRequest( MessageFormat.Computer, tankNumber, productLabel); var p = new VeederRoot_ATG_Console.Parser(); var actual = p.Serialize(request); Assert.AreEqual(true, ValueEquals(expected, actual), System.Environment.NewLine + "expect: " + expected.Select(h => h.ToString("X2")).Aggregate((n, acc) => n + " " + acc) + System.Environment.NewLine + "actual: " + actual.Select(h => h.ToString("X2")).Aggregate((n, acc) => n + " " + acc)); } [TestMethod] public void SetTankProductLabelRequest_TestMethod2() { var tankNumber = 1; var productLabel = "diesel asdfS"; var expected = new byte[] { 0x01 } .Concat(Encoding.ASCII.GetBytes("s602" + tankNumber.ToString().PadLeft(2, '0'))) .Concat(Encoding.ASCII.GetBytes(productLabel.PadRight(20, ' '))); var request = new SetTankProductLabelRequest( MessageFormat.Computer, tankNumber, productLabel); var p = new VeederRoot_ATG_Console.Parser(); var actual = p.Serialize(request); Assert.AreEqual(true, ValueEquals(expected, actual), System.Environment.NewLine + "expect: " + expected.Select(h => h.ToString("X2")).Aggregate((n, acc) => n + " " + acc) + System.Environment.NewLine + "actual: " + actual.Select(h => h.ToString("X2")).Aggregate((n, acc) => n + " " + acc)); } [TestMethod] public void SetTankProductLabelRequest_TestMethod3() { var tankNumber = 8; var productLabel = "REGULAR UNLEADED"; var expected = new byte[] { 0x01 } .Concat(Encoding.ASCII.GetBytes("s602" + tankNumber.ToString().PadLeft(2, '0'))) .Concat(Encoding.ASCII.GetBytes(productLabel.PadRight(20, ' '))); var request = new SetTankProductLabelRequest( MessageFormat.Computer, tankNumber, productLabel); var p = new VeederRoot_ATG_Console.Parser(); var actual = p.Serialize(request); Assert.AreEqual(true, ValueEquals(expected, actual), System.Environment.NewLine + "expect: " + expected.Select(h => h.ToString("X2")).Aggregate((n, acc) => n + " " + acc) + System.Environment.NewLine + "actual: " + actual.Select(h => h.ToString("X2")).Aggregate((n, acc) => n + " " + acc)); } #endregion } }