public void PublicMethodThrowAfterDispose() { var stream = new LazyFileStream(tempFile, FileOpenMode.ReadWrite); stream.Dispose(); byte[] buffer = new byte[1]; Assert.That( () => stream.SetLength(10), Throws.InstanceOf <ObjectDisposedException>()); Assert.That( () => stream.WriteByte(0x00), Throws.InstanceOf <ObjectDisposedException>()); Assert.That( () => stream.Write(buffer, 0, 1), Throws.InstanceOf <ObjectDisposedException>()); Assert.That( () => stream.ReadByte(), Throws.InstanceOf <ObjectDisposedException>()); Assert.That( () => stream.Read(buffer, 0, 1), Throws.InstanceOf <ObjectDisposedException>()); }
public void WriteOpensFile() { using (var stream = new LazyFileStream(tempFile, FileOpenMode.Write)) { Assert.That(stream.BaseStream, Is.Null); stream.WriteByte(0x42); Assert.That(stream.BaseStream, Is.Not.Null); } using (var fs = new FileStream(tempFile, FileMode.Open)) { Assert.That(fs.ReadByte(), Is.EqualTo(0x42)); } using (var stream = new LazyFileStream(tempFile, FileOpenMode.Append)) { stream.Position = 1; Assert.That(stream.BaseStream, Is.Null); stream.Write(new byte[] { 0xAA, 0xBB }, 1, 1); Assert.That(stream.BaseStream, Is.Not.Null); } using (var fs = new FileStream(tempFile, FileMode.Open)) { Assert.That(fs.ReadByte(), Is.EqualTo(0x42)); Assert.That(fs.ReadByte(), Is.EqualTo(0xBB)); } }