Пример #1
0
    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)] ");
    }
Пример #2
0
    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)] ");
    }
Пример #3
0
    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)] ");
    }
Пример #4
0
    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)] ");
    }