public void AfterDispose_UnusableMethodsThrow() { var subject = new SmallBlockMemoryStream(); subject.Dispose(); long dummy; var buffer = new byte[1]; var dummyTarget = new MemoryStream(); var actions = new Action[] { () => dummy = subject.Length, () => subject.SetLength(0), () => dummy = subject.Capacity, () => subject.Capacity = 100, () => dummy = subject.Position, () => subject.Position = 0, () => subject.Seek(0, SeekOrigin.Begin), () => subject.Write(buffer, 0, 1), () => subject.WriteByte(1), () => CallWriteTo(subject, dummyTarget), () => subject.Read(buffer, 0, 1), () => subject.ReadByte() }; foreach (var action in actions) { action.ShouldThrow <ObjectDisposedException>(); } }
public void ReadByte_PastEndOfStream_succeeds() { using (var standard = new MemoryStream()) using (var subject = new SmallBlockMemoryStream()) { standard.Write(TestData, 0, TestData.Length); subject.Write(TestData, 0, TestData.Length); for (var i = 0; i <= TestData.Length; i++) { subject.ReadByte().Should().Be(standard.ReadByte()); } } }