public void Encode()
        {
            FormatterContext formatterContext =
                new FormatterContext(FormatterContext.DefaultBufferSize);

            _encoder.Encode(_data1, ref formatterContext);

            Assert.IsTrue(formatterContext.DataLength == _encodedData1.Length);

            byte[] encodedData = formatterContext.GetData();

            for (int i = _encodedData1.Length - 1; i >= 0; i--)
            {
                Assert.IsTrue(_encodedData1[i] == encodedData[i]);
            }

            formatterContext.Clear();

            _encoder.Encode(_data2, ref formatterContext);

            Assert.IsTrue(formatterContext.DataLength == _encodedData2.Length);

            encodedData = formatterContext.GetData();

            for (int i = _encodedData2.Length - 1; i >= 0; i--)
            {
                Assert.IsTrue(_encodedData2[i] == encodedData[i]);
            }
        }
        public void GetDataAndClear()
        {
            FormatterContext formatterContext = new FormatterContext(
                FormatterContext.DefaultBufferSize);

            formatterContext.Write(_data);
            byte[] availableData = formatterContext.GetData();

            Assert.IsNotNull(availableData);
            Assert.IsTrue(availableData.Length == _binaryData.Length);
            Assert.IsTrue(_data.Equals(Encoding.UTF7.GetString(availableData)));

            formatterContext.Clear();
            availableData = formatterContext.GetData();
            Assert.IsNull(availableData);
        }
        public void BinaryWriting()
        {
            FormatterContext formatterContext = new FormatterContext(
                FormatterContext.DefaultBufferSize);

            formatterContext.Write(_binaryData);
            byte[] availableData = formatterContext.GetData();

            Assert.IsNotNull(availableData);
            Assert.IsTrue(availableData.Length == _binaryData.Length);

            for (int i = availableData.Length - 1; i >= 0; i--)
            {
                Assert.IsTrue(availableData[i] == _binaryData[i]);
            }
        }
        public void PartialBinaryWriting()
        {
            FormatterContext formatterContext = new FormatterContext(
                FormatterContext.DefaultBufferSize);
            int binaryDataOffset = 3;

            formatterContext.Write(_binaryData, binaryDataOffset,
                                   _binaryData.Length - binaryDataOffset);
            byte[] availableData = formatterContext.GetData();

            Assert.IsNotNull(availableData);
            Assert.IsTrue(availableData.Length ==
                          (_binaryData.Length - binaryDataOffset));

            for (int i = availableData.Length - 1; i >= 0; i--)
            {
                Assert.IsTrue(availableData[i] ==
                              _binaryData[i + binaryDataOffset]);
            }
        }
        public void Encode()
        {
            FormatterContext formatterContext =
                new FormatterContext(FormatterContext.DefaultBufferSize);

            int[]    sizes        = { 3, 15, 999, 4510, 16384, 681115 };
            byte[][] expectedData =
            {
                new byte[] {    3 },
                new byte[] { 0x15 },
                new byte[] {9, 0x99 },
                new byte[] {0x45, 0x10 },
                new byte[] {1, 0x63, 0x84 },
                new byte[] {0x68, 0x11, 0x15 }
            };

            BcdLengthEncoder encoder;

            byte[] data;

            for (int i = 0; i < sizes.Length; i++)
            {
                encoder = BcdLengthEncoder.GetInstance(sizes[i]);
                encoder.Encode(sizes[i], ref formatterContext);
                data = formatterContext.GetData();
                Assert.IsTrue(data.Length == expectedData[i].Length);
                for (int j = expectedData[i].Length - 1; j >= 0; j--)
                {
                    Assert.IsTrue(data[j] == expectedData[i][j]);
                }
                formatterContext.Clear();
            }

            encoder = BcdLengthEncoder.GetInstance(99);
            try {
                encoder.Encode(100, ref formatterContext);
                Assert.Fail();
            } catch (ArgumentOutOfRangeException e) {
                Assert.IsTrue(e.ParamName == "length");
            }
        }
예제 #6
0
        public void Encode()
        {
            FormatterContext formatterContext =
                new FormatterContext(FormatterContext.DefaultBufferSize);

            int[]    sizes        = { 0, 115, 1999, 14510, 116384, 1681115 };
            byte[][] expectedData =
            {
                new byte[] {    0 },
                new byte[] { 0x73 },
                new byte[] {7, 0xCF },
                new byte[] {0x38, 0xAE },
                new byte[] {1, 0xC6, 0xA0 },
                new byte[] {0x19, 0xA6, 0xDB }
            };

            NboLengthEncoder encoder;

            byte[] data;

            for (int i = 0; i < sizes.Length; i++)
            {
                encoder = NboLengthEncoder.GetInstance(sizes[i]);
                encoder.Encode(sizes[i], ref formatterContext);
                data = formatterContext.GetData();
                Assert.IsTrue(data.Length == expectedData[i].Length);
                for (int j = expectedData[i].Length - 1; j >= 0; j--)
                {
                    Assert.IsTrue(data[j] == expectedData[i][j]);
                }
                formatterContext.Clear();
            }

            encoder = NboLengthEncoder.GetInstance(65535);
            try {
                encoder.Encode(65536, ref formatterContext);
                Assert.Fail();
            } catch (ArgumentOutOfRangeException e) {
                Assert.IsTrue(e.ParamName == "length");
            }
        }