Пример #1
0
        public void DecodePropertyId_NotEnoughData_ShouldThrow(int length)
        {
            var data = new byte[length];

            using (var stream = new MemoryStream(data, false))
                using (var reader = new BinaryReader(stream))
                {
                    Assert.Throws <EndOfStreamException>(() => FakeTransactionPayloadEncoder.DecodePropertyId(reader));
                }
        }
Пример #2
0
        public void DecodePropertyId_WithInvalidData_ShouldThrow(int length, int id)
        {
            // Arrange.
            var data = new byte[length];

            using (var stream = new MemoryStream(data))
                using (var writer = new BinaryWriter(stream, Encoding.UTF8, true))
                    using (var reader = new BinaryReader(stream, Encoding.UTF8, true))
                    {
                        writer.Write(IPAddress.HostToNetworkOrder(id));
                        stream.Seek(0, SeekOrigin.Begin);

                        // Act.
                        Assert.Throws <ArgumentOutOfRangeException>(
                            () => FakeTransactionPayloadEncoder.DecodePropertyId(reader)
                            );
                    }
        }
Пример #3
0
        public void DecodePropertyId_WithValidData_ShouldSuccess(int length, int id)
        {
            // Arrange.
            var data = new byte[length];

            using (var stream = new MemoryStream(data))
                using (var writer = new BinaryWriter(stream, Encoding.UTF8, true))
                    using (var reader = new BinaryReader(stream, Encoding.UTF8, true))
                    {
                        writer.Write(IPAddress.HostToNetworkOrder(id));
                        stream.Seek(0, SeekOrigin.Begin);

                        // Act.
                        var result = FakeTransactionPayloadEncoder.DecodePropertyId(reader);

                        // Assert.
                        Assert.Equal((uint)id, result.Value);
                        Assert.Equal(4, stream.Position);
                    }
        }