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); }
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"); }