Esempio n. 1
0
 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());
 }
Esempio n. 2
0
        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());
              }
        }
Esempio n. 3
0
        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());
              }
        }