public void CanSeekFromTheCurrentStreamPosition() { var stream = new ReadOnlyByteBufferStream(this.testBuffer, false); long position = stream.Seek(0, SeekOrigin.Current); Assert.Equal(0, position); Assert.Equal(position, stream.Position); position = stream.Seek(2, SeekOrigin.Current); Assert.Equal(2, position); Assert.Equal(position, stream.Position); int relativeEnd = this.testBuffer.WriterIndex - (int)position; position = stream.Seek(relativeEnd, SeekOrigin.Current); Assert.Equal(this.testBuffer.WriterIndex, position); Assert.Equal(position, stream.Position); }
public void CanSeekFromTheBeginningOfTheStream() { var stream = new ReadOnlyByteBufferStream(this.testBuffer, false); stream.Position = this.testBuffer.WriterIndex / 2; // ensure seek calcs don't depend on read pos long position = stream.Seek(0, SeekOrigin.Begin); Assert.Equal(0, position); Assert.Equal(position, stream.Position); position = stream.Seek(2, SeekOrigin.Begin); Assert.Equal(2, position); Assert.Equal(position, stream.Position); position = stream.Seek(this.testBuffer.WriterIndex, SeekOrigin.Begin); Assert.Equal(this.testBuffer.WriterIndex, position); Assert.Equal(position, stream.Position); }
public void StreamIsSeekable() { var stream = new ReadOnlyByteBufferStream(this.testBuffer, false); Assert.True(stream.CanSeek); }
public void CannotSetThePositionPastTheEndOfTheBuffer() { var stream = new ReadOnlyByteBufferStream(this.testBuffer, false); Assert.Throws <IndexOutOfRangeException>(() => stream.Position = this.testBuffer.WriterIndex + 1); }
public void CanGetTheStreamLength() { var stream = new ReadOnlyByteBufferStream(this.testBuffer, false); Assert.Equal(this.testBuffer.WriterIndex, stream.Length); }