示例#1
0
        public void ReadTo()
        {
            var buffer = new BufferReaderWriter(new byte[10], 0, 0, false);

            buffer.WriteByte(1);
            buffer.Seek(0, SeekOrigin.End);
            buffer.WriteByte(2);
            buffer.Seek(0, SeekOrigin.Begin);

            var arr = new byte[10];

            buffer.ReadTo(arr, 0, 10);
            Assert.Equal(new byte[] { 1, 0, 0, 0, 0, 0, 0, 0, 0, 2 }, arr);

            Assert.Throws <InvalidOperationException>(() => buffer.ReadTo(arr, -1, 0));
            Assert.Throws <InvalidOperationException>(() => buffer.ReadTo(arr, 0, -1));

            arr = new byte[9];
            Assert.Throws <InvalidOperationException>(() => buffer.ReadTo(arr, 0, 10));

            arr = new byte[12];
            buffer.Seek(0, SeekOrigin.Begin);
            buffer.ReadTo(arr, 2, 10);
            Assert.Equal(new byte[] { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2 }, arr);
        }