public void testEncodeToSpec() { byte[] buff = new byte[1024]; for (int i = 0; i < 1024; i++) { buff[i] = 0; } Console.Out.WriteLine(" [executing test (testEncodeToSpec)(TP_3.3.5.2)] "); msgIn1.getHeader().getHeaderRec().setMessageID(500); msgIn1.getBody().getVariantTop().setFieldValue(1); // fill list and encode into buff for (ushort i = 0; i < 10; ++i) { MsgIn.Body.VariantTop.ListB.RecB1 temprec = new MsgIn.Body.VariantTop.ListB.RecB1(); temprec.setFieldB1((short)(20 + i)); msgIn1.getBody().getVariantTop().getListB().addElement(temprec); } msgIn1.encode(buff, 0); // verify encoding matches expectations from spec document. // offset 0: ushort w/ message ID Assert.AreEqual(500, BitConverter.ToUInt16(buff, 0)); // offset 2: byte w/ VariantTop's vtag field Assert.AreEqual(1, buff[2]); // offset 3: byte w/ ListB's length Assert.AreEqual(10, buff[3]); int offset = 4; // list data starts at offset 4, ends at offset 22. for (ushort i = 0; i < 10; ++i) { Assert.AreEqual(20 + i, BitConverter.ToUInt16(buff, offset)); offset += 2; } // byte 23 should be 0, past end of message data. Assert.AreEqual(0, buff[23]); Console.Out.WriteLine(" [completed test (testEncodeToSpec)] "); }
public void testEncodeDecodeOperations() { byte[] buff = new byte[1024]; for (int i = 0; i < 1024; i++) { buff[i] = 0; } Console.Out.WriteLine(" [executing test (testEncodeDecodeOperations)(TP_3.3.5.3)] "); // fill msg1, select ListA as active. msgIn1.getHeader().getHeaderRec().setMessageID(500); msgIn1.getBody().getVariantTop().setFieldValue(0); for (ushort i = 0; i < 5; ++i) { MsgIn.Body.VariantTop.ListA.RecA1 temprec = new MsgIn.Body.VariantTop.ListA.RecA1(); temprec.setFieldA1((short)(10 + i)); msgIn1.getBody().getVariantTop().getListA().addElement(temprec); } // fill msg2, select ListB as active. msgIn2.getHeader().getHeaderRec().setMessageID(1000); msgIn2.getBody().getVariantTop().setFieldValue(1); for (ushort i = 0; i < 10; ++i) { MsgIn.Body.VariantTop.ListB.RecB1 temprec = new MsgIn.Body.VariantTop.ListB.RecB1(); temprec.setFieldB1((short)(20 + i)); msgIn2.getBody().getVariantTop().getListB().addElement(temprec); } // encode/decode msg2 into msg1. verify ListB now active in msg1 and verify list contents copied over msgIn2.encode(buff, 0); msgIn1.decode(buff, 0); Assert.AreEqual(1000, msgIn1.getHeader().getHeaderRec().getMessageID()); Assert.AreEqual(1, msgIn1.getBody().getVariantTop().getFieldValue()); for (ushort i = 0; i < 10; ++i) { Assert.AreEqual(20 + i, msgIn1.getBody().getVariantTop().getListB().getElement(i).getFieldB1()); } Console.Out.WriteLine(" [completed test (testEncodeDecodeOperations)] "); }