Beispiel #1
0
        public void TestEncodeAndDecode()
        {
            RTTPacket sentP = new RTTPacket
            {
                DCIDLength         = 2,
                DCID               = new byte[] { 0x1a, 0x85 },
                PacketNumberLength = 3,
                SCIDLength         = 2,
                SCID               = new byte[] { 0x09, 0x34 },
                PacketNumber       = 91235,
            };

            // Create a size 2 payload
            sentP.AddFrame(new PaddingFrame());
            sentP.AddFrame(new PaddingFrame());

            byte[] b = sentP.Encode();

            Packet p = Packet.Unpack(b);

            Assert.AreEqual(p.GetType(), typeof(RTTPacket));
            RTTPacket recP = p as RTTPacket;

            Assert.AreEqual((UInt32)2, recP.DCIDLength);
            CollectionAssert.AreEqual(new byte[] { 0x1a, 0x85 }, recP.DCID);
            Assert.AreEqual((UInt32)2, recP.SCIDLength);
            CollectionAssert.AreEqual(new byte[] { 0x09, 0x34 }, recP.SCID);
            Assert.AreEqual((UInt32)3, recP.PacketNumberLength);
            Assert.AreEqual((UInt32)91235, recP.PacketNumber);
            Assert.AreEqual((UInt64)5, recP.Length.Value); // 5 = PacketNumberLength + Payload.Length
        }