public void Read_Bytes_FromBothStreams()
        {
            const int READ_LENGTH = 10;
            var       offset      = (int)stream1.Length - 2;

            concatenated.Position = offset;

            var bytesConcatenated = new byte[READ_LENGTH];
            var bytesOriginal     = combinedData.Skip(offset).Take(READ_LENGTH).ToArray();

            concatenated.Position = offset;
            concatenated.Read(bytesConcatenated, 0, READ_LENGTH);

            Assert.IsTrue(CompareBytes(bytesOriginal, bytesConcatenated));
        }
        public void CanCatenateSingleStream()
        {
            var buffer = new byte[5];

            var one          = new MemoryStream(new byte[] { 1, 2, 3, 4, 5 });
            var concatenated = new ConcatenatedStream(new Stream[] { one });

            concatenated.Read(buffer, 0, 5);

            Assert.Equal(new byte[] { 1, 2, 3, 4, 5 }, buffer);
        }
        public void CanConcatenateTwoStreams()
        {
            byte[] buffer = new byte[10];

            var one          = new MemoryStream(new byte[] { 1, 2, 3, 4, 5 });
            var two          = new MemoryStream(new byte[] { 6, 7, 8, 9, 10 });
            var concatenated = new ConcatenatedStream(new Stream[] { one, two });

            concatenated.Read(buffer, 0, 10);

            Assert.Equal(new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }, buffer);
        }
        public void CanConcatenateThreeStreams()
        {
            byte[] buffer = new byte[15];

            var one          = new MemoryStream(new byte[] { 1, 2, 3, 4, 5 });
            var two          = new MemoryStream(new byte[] { 6, 7, 8, 9, 10 });
            var three        = new MemoryStream(new byte[] { 11, 12, 13, 14, 15 });
            var concatenated = new ConcatenatedStream(new Stream[] { one, two, three });

            concatenated.Read(buffer, 0, 15);

            Assert.Equal(new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }, buffer);
        }
Example #5
0
        public void ReadAllTest()
        {
            ConcatenatedStream cStream = new ConcatenatedStream(streamSampleOne, streamSampleTwo, streamSampleThree);

            int totalLength = sampleStreamSize * 3;

            byte[] output = new byte[totalLength];

            cStream.Read(output, 0, totalLength);

            Assert.IsTrue(
                output.Take(sampleStreamSize).SequenceEqual(streamSampleOne.ToArray()),
                "First array does not match");

            Assert.IsTrue(
                output.Skip(sampleStreamSize).Take(sampleStreamSize).SequenceEqual(streamSampleTwo.ToArray()),
                "Second array does not match");

            Assert.IsTrue(
                output.Skip(sampleStreamSize * 2).Take(sampleStreamSize).SequenceEqual(streamSampleThree.ToArray()),
                "Third array does not match");
        }