示例#1
0
        private static void TestFrameCodec2_0()
        {
            byte[] data = new byte[]
            {
                // Frame ID
                (byte)'M', (byte)'C', (byte)'I',

                // Size
                0, 0, 0
            };

            FrameCodec2_0 codec = new FrameCodec2_0();
            Frame         frame = new Frame(TagDescriptionMap.Instance[Version.v2_0]);

            frame.Codec = codec;

            using (Reader reader = new Reader(data))
            {
                codec.ReadHeader(reader, frame);
                codec.ReadContent(reader, frame);
            }

            UnitTest.Test(frame.FrameId == "MCI");
            UnitTest.Test(codec.SizeContent == 0);

            using (Writer writer = new Writer())
            {
                codec.Write(writer, frame);
                UnitTest.Test(ArrayUtils.IsEqual(writer.OutData, data));
            }
        }
示例#2
0
        public override FrameCodec Clone()
        {
            FrameCodec2_0 result = new FrameCodec2_0();

            result.SizeContent = SizeContent;
            return(result);
        }
示例#3
0
        private static void TestFrameCodec2_0Desynchronized()
        {
            byte[] data = new byte[]
            {
                // Frame ID
                (byte)'M', (byte)'C', (byte)'I',

                // Size
                0, 0, 6,

                // Payload
                0xFF, 0, 0xFF, 0x1, 0x2, 0xFF, 0, 0xFF
            };

            byte[] dstPlayload = new byte[] { 0xFF, 0xFF, 0x1, 0x2, 0xFF, 0xFF };

            FrameCodec2_0 codec = new FrameCodec2_0();

            Frame frame = new Frame(TagDescriptionMap.Instance[Version.v2_0]);

            frame.Codec = codec;

            using (Reader reader = new Reader(data))
            {
                reader.Unsynchronization = true;
                codec.ReadHeader(reader, frame);
                codec.ReadContent(reader, frame);
            }

            UnitTest.Test(ArrayUtils.IsEqual((frame.Content as FrameContentBinary).Content, dstPlayload));

            using (Writer writer = new Writer())
            {
                writer.Unsynchronization = true;
                codec.Write(writer, frame);
                UnitTest.Test(ArrayUtils.IsEqual(writer.OutData, data));
            }
        }