public void CopyTo(Stream source, byte[] expected) { using var destination = new ChunkedMemoryStream(this.allocator); source.CopyTo(destination); Assert.InRange(source.Position, source.Length, int.MaxValue); // Copying the data should have read to the end of the stream or stayed past the end. Assert.Equal(expected, destination.ToArray()); }
public void TestWriteByte() { using (var stream = new ChunkedMemoryStream(8)) { Assert.AreEqual(0L, stream.Position); Assert.AreEqual(0L, stream.Length); for (var i = 0; i < 32; i++) { Assert.AreEqual((long)i, stream.Position); stream.WriteByte((byte)i); Assert.AreEqual((long)(i + 1), stream.Position); Assert.AreEqual((long)(i + 1), stream.Length); } Assert.AreEqual(new byte[] { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, }, stream.ToArray()); } }
public void TestWrite() { using (var stream = new ChunkedMemoryStream(8)) { Assert.AreEqual(0L, stream.Position); Assert.AreEqual(0L, stream.Length); stream.Write(new byte[] {0x00}, 0, 1); Assert.AreEqual(1L, stream.Position); Assert.AreEqual(1L, stream.Length); stream.Write(new byte[] {0x01, 0x02, 0x03}, 0, 3); Assert.AreEqual(4L, stream.Position); Assert.AreEqual(4L, stream.Length); stream.Write(new byte[] {0x04, 0x05, 0x06, 0x07}, 0, 4); Assert.AreEqual(8L, stream.Position); Assert.AreEqual(8L, stream.Length); stream.Write(new byte[] {0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e}, 0, 7); Assert.AreEqual(15L, stream.Position); Assert.AreEqual(15L, stream.Length); stream.Write(new byte[] {0x0f, 0x10}, 0, 2); Assert.AreEqual(17L, stream.Position); Assert.AreEqual(17L, stream.Length); stream.Write(new byte[] {0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f}, 0, 15); Assert.AreEqual(32L, stream.Position); Assert.AreEqual(32L, stream.Length); Assert.AreEqual(new byte[] { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, }, stream.ToArray()); } }