コード例 #1
0
        public void TestRead()
        {
            // Create the initial data.
            var testStrings     = new TestStrings();
            var testStringsType = testStrings.GetType();
            var stream          = new MemoryStream();
            var bitWriter       = new BitWriter(stream);

            bitWriter.Write <uint>(5);
            bitWriter.Write <byte>((byte)'T');
            bitWriter.Write <byte>((byte)'e');
            bitWriter.Write <byte>((byte)'s');
            bitWriter.Write <byte>((byte)'t');
            bitWriter.Write <byte>((byte)'5');
            bitWriter.Write <byte>((byte)'T');
            bitWriter.Write <byte>((byte)'e');
            bitWriter.Write <byte>((byte)'s');
            bitWriter.Write <byte>((byte)'t');
            bitWriter.Write <byte>((byte)'6');
            for (var i = 0; i < 5; i++)
            {
                bitWriter.Write <byte>(0);
            }
            bitWriter.Write <uint>(5);
            bitWriter.Write <ushort>((ushort)'T');
            bitWriter.Write <ushort>((ushort)'e');
            bitWriter.Write <ushort>((ushort)'s');
            bitWriter.Write <ushort>((ushort)'t');
            bitWriter.Write <ushort>((ushort)'7');
            bitWriter.Write <ushort>((ushort)'T');
            bitWriter.Write <ushort>((ushort)'e');
            bitWriter.Write <ushort>((ushort)'s');
            bitWriter.Write <ushort>((ushort)'t');
            bitWriter.Write <ushort>((ushort)'8');
            for (var i = 0; i < 5; i++)
            {
                bitWriter.Write <ushort>(0);
            }

            // REad the properties from the BitReader and assert the expected properties was read.
            var readProperties = new Dictionary <string, object>();
            var bitReader      = new BitReader(stream);

            new StringPacketProperty(testStringsType.GetProperty("TestString1")).Read(testStrings, bitReader, readProperties, null);
            new StringPacketProperty(testStringsType.GetProperty("TestString2")).Read(testStrings, bitReader, readProperties, null);
            new StringPacketProperty(testStringsType.GetProperty("TestString3")).Read(testStrings, bitReader, readProperties, null);
            new StringPacketProperty(testStringsType.GetProperty("TestString4")).Read(testStrings, bitReader, readProperties, null);
            Assert.AreEqual(testStrings.TestString1, "Test5");
            Assert.AreEqual(testStrings.TestString2, "Test6");
            Assert.AreEqual(testStrings.TestString3, "Test7");
            Assert.AreEqual(testStrings.TestString4, "Test8");
            Assert.AreEqual(readProperties, new Dictionary <string, object>()
            {
                { "TestString1", "Test5" },
                { "TestString2", "Test6" },
                { "TestString3", "Test7" },
                { "TestString4", "Test8" },
            });
        }
コード例 #2
0
        public void TestWrite()
        {
            // Create the test strings.
            var testStrings = new TestStrings()
            {
                TestString1 = "Test1",
                TestString2 = "Test2",
                TestString3 = "Test3",
                TestString4 = "Test4",
            };
            var testStringsType = testStrings.GetType();

            // Create the test BitWriter.
            var stream    = new MemoryStream();
            var bitWriter = new BitWriter(stream);

            // Write the properties to the BitWriter and assert the expected data was written.
            var writtenProperties = new Dictionary <string, object>();

            new StringPacketProperty(testStringsType.GetProperty("TestString1")).Write(testStrings, bitWriter, writtenProperties);
            new StringPacketProperty(testStringsType.GetProperty("TestString2")).Write(testStrings, bitWriter, writtenProperties);
            new StringPacketProperty(testStringsType.GetProperty("TestString3")).Write(testStrings, bitWriter, writtenProperties);
            new StringPacketProperty(testStringsType.GetProperty("TestString4")).Write(testStrings, bitWriter, writtenProperties);
            Assert.AreEqual(writtenProperties, new Dictionary <string, object>()
            {
                { "TestString1", "Test1" },
                { "TestString2", "Test2" },
                { "TestString3", "Test3" },
                { "TestString4", "Test4" },
            });

            // Assert the strings were written.
            var bitReader = new BitReader(stream);

            Assert.AreEqual(bitReader.Read <uint>(), 5);
            Assert.AreEqual(bitReader.Read <byte>(), (byte)'T');
            Assert.AreEqual(bitReader.Read <byte>(), (byte)'e');
            Assert.AreEqual(bitReader.Read <byte>(), (byte)'s');
            Assert.AreEqual(bitReader.Read <byte>(), (byte)'t');
            Assert.AreEqual(bitReader.Read <byte>(), (byte)'1');
            Assert.AreEqual(bitReader.Read <byte>(), (byte)'T');
            Assert.AreEqual(bitReader.Read <byte>(), (byte)'e');
            Assert.AreEqual(bitReader.Read <byte>(), (byte)'s');
            Assert.AreEqual(bitReader.Read <byte>(), (byte)'t');
            Assert.AreEqual(bitReader.Read <byte>(), (byte)'2');
            for (var i = 0; i < 5; i++)
            {
                Assert.AreEqual(bitReader.Read <byte>(), 0);
            }
            Assert.AreEqual(bitReader.Read <uint>(), 5);
            Assert.AreEqual(bitReader.Read <ushort>(), (ushort)'T');
            Assert.AreEqual(bitReader.Read <ushort>(), (ushort)'e');
            Assert.AreEqual(bitReader.Read <ushort>(), (ushort)'s');
            Assert.AreEqual(bitReader.Read <ushort>(), (ushort)'t');
            Assert.AreEqual(bitReader.Read <ushort>(), (ushort)'3');
            Assert.AreEqual(bitReader.Read <ushort>(), (ushort)'T');
            Assert.AreEqual(bitReader.Read <ushort>(), (ushort)'e');
            Assert.AreEqual(bitReader.Read <ushort>(), (ushort)'s');
            Assert.AreEqual(bitReader.Read <ushort>(), (ushort)'t');
            Assert.AreEqual(bitReader.Read <ushort>(), (ushort)'4');
            for (var i = 0; i < 5; i++)
            {
                Assert.AreEqual(bitReader.Read <ushort>(), 0);
            }
        }