Пример #1
0
        public void MessageWriter_multiple_reads_writes()
        {
            _messageBuilder.Write(true);
            _messageBuilder.Write(false);

            _messageBuilder.Write((char)'D');
            _messageBuilder.Write(new char[] { 'A', 'Y', 'X', '0', '9', '8' });

            _messageBuilder.Write((byte)214);
            _messageBuilder.Write((sbyte)125);
            _messageBuilder.Write((sbyte)-125);

            _messageBuilder.Write((short)4513);
            _messageBuilder.Write((short)-4513);
            _messageBuilder.Write((ushort)43513);

            _messageBuilder.Write((int)236236231);
            _messageBuilder.Write((int)-236236231);
            _messageBuilder.Write((uint)2362326231);

            _messageBuilder.Write((long)2362362312561531);
            _messageBuilder.Write((long)-2362362312561531);
            _messageBuilder.Write((ulong)2362362312561531125);

            _messageBuilder.Write((float)1234.56789);
            _messageBuilder.Write((double)123467.5678912);
            _messageBuilder.Write((decimal)123456789123456789.123456789123456789);

            var expectedByteArray = Utilities.SequentialBytes(50);

            _messageBuilder.Write(expectedByteArray, 0, expectedByteArray.Length);

            _messageBuilder.Write(FillerText);

            var message = _messageBuilder.ToMessage();

            _messageReader.Message = message;

            Assert.Equal(true, _messageReader.ReadBoolean());
            Assert.Equal(false, _messageReader.ReadBoolean());

            Assert.Equal('D', _messageReader.ReadChar());
            Assert.Equal(new char[] { 'A', 'Y', 'X', '0', '9', '8' }, _messageReader.ReadChars(6));


            Assert.Equal((byte)214, _messageReader.ReadByte());
            Assert.Equal((sbyte)125, _messageReader.ReadSByte());
            Assert.Equal((sbyte)-125, _messageReader.ReadSByte());

            Assert.Equal((short)4513, _messageReader.ReadInt16());
            Assert.Equal((short)-4513, _messageReader.ReadInt16());
            Assert.Equal((ushort)43513, _messageReader.ReadUInt16());

            Assert.Equal((int)236236231, _messageReader.ReadInt32());
            Assert.Equal((int)-236236231, _messageReader.ReadInt32());
            Assert.Equal((uint)2362326231, _messageReader.ReadUInt32());

            Assert.Equal((long)2362362312561531, _messageReader.ReadInt64());
            Assert.Equal((long)-2362362312561531, _messageReader.ReadInt64());
            Assert.Equal((ulong)2362362312561531125, _messageReader.ReadUInt64());

            Assert.Equal((float)1234.56789, _messageReader.ReadSingle());
            Assert.Equal((double)123467.5678912, _messageReader.ReadDouble());
            Assert.Equal((decimal)123456789123456789.123456789123456789, _messageReader.ReadDecimal());

            var readByteArray = new byte[50];

            _messageReader.Read(readByteArray, 0, readByteArray.Length);
            Assert.Equal(expectedByteArray, readByteArray);

            Assert.Equal(FillerText, _messageReader.ReadString());
            Assert.True(_messageReader.IsAtEnd);
        }