public void DiscDriveFailureDuringOpenWrite() { var stream = new TestStream(); using (var tf = TeaFile <int> .Create(stream)) { tf.Write(111); } stream.Position = 0; stream.FailAfterPosition = 17; Executing.This(() => TeaFile <int> .OpenWrite(stream)).Should().Throw <FileFormatException>() .Exception.InnerException.Should().Be.OfType <IOException>(); }
public void FlushIsCalled() { var stream = new TestStream(); var tf = TeaFile <int> .Create(stream); tf.Write(Enumerable.Range(1, 10)); stream.FlushWasCalled = false; // the header was flushed already, so we reset the flag here stream.FlushWasCalled.Should().Be.False(); tf.Flush(); // we can easily test only that the call does not except stream.FlushWasCalled.Should().Be.True(); tf.Close(); }
public void IOException() { var stream = new TestStream(); using (var tf = TeaFile <Event <int> > .Create(stream)) { Time t = new Time(2000, 1, 1); tf.Write(Enumerable.Range(1, 5).Select(i => new Event <int> { Time = t.AddDays(i), Value = i })); } stream.Position = 0; stream.FailAfterPosition = stream.Length - 2; using (var tf = TeaFile <Event <int> > .OpenRead(stream)) { tf.Count.Should().Be(5); // the count is still 5, the stream length has not changed tf.Read().Value.Should().Be(1); tf.Read().Value.Should().Be(2); tf.Read().Value.Should().Be(3); tf.Read().Value.Should().Be(4); Executing.This(() => tf.Read()).Should().Throw <IOException>(); } }
public void IOException() { var stream = new TestStream(); using (var tf = TeaFile<Event<int>>.Create(stream)) { Time t = new Time(2000, 1, 1); tf.Write(Enumerable.Range(1, 5).Select(i => new Event<int> {Time = t.AddDays(i), Value = i})); } stream.Position = 0; stream.FailAfterPosition = stream.Length - 2; using (var tf = TeaFile<Event<int>>.OpenRead(stream)) { tf.Count.Should().Be(5); // the count is still 5, the stream length has not changed tf.Read().Value.Should().Be(1); tf.Read().Value.Should().Be(2); tf.Read().Value.Should().Be(3); tf.Read().Value.Should().Be(4); Executing.This(() => tf.Read()).Should().Throw<IOException>(); } }
public void DiscDriveFailureDuringOpenWrite() { var stream = new TestStream(); using (var tf = TeaFile<int>.Create(stream)) { tf.Write(111); } stream.Position = 0; stream.FailAfterPosition = 17; Executing.This(() => TeaFile<int>.OpenWrite(stream)).Should().Throw<FileFormatException>() .Exception.InnerException.Should().Be.OfType<IOException>(); }
public void DiscDriveFailureDuringCreate() { var stream = new TestStream(); stream.FailAfterPosition = 17; Executing.This(() => TeaFile<int>.Create(stream)).Should().Throw<IOException>(); }
public void FlushIsCalled() { var stream = new TestStream(); var tf = TeaFile<int>.Create(stream); tf.Write(Enumerable.Range(1, 10)); stream.FlushWasCalled = false; // the header was flushed already, so we reset the flag here stream.FlushWasCalled.Should().Be.False(); tf.Flush(); // we can easily test only that the call does not except stream.FlushWasCalled.Should().Be.True(); tf.Close(); }
public void TestStreamTest() { TestStream stream; using (stream = new TestStream()) using (var tf = TeaFile<int>.Create(stream)) { } stream.WasDisposed.Should().Be.True(); }
public void TeaFileDoesNotDisposeExternalStream() { var stream = new TestStream(); using (var tf = TeaFile<int>.Create(stream)) { } stream.WasDisposed.Should().Be.False(); }