public void OpenWriteStream() { Stream stream = new MemoryStream(); using (var tf = TeaFile <int> .Create(stream)) { tf.Write(Enumerable.Range(1, 10)); } stream.Position = 0; using (var tf = TeaFile <int> .OpenWrite(stream)) { tf.Write(Enumerable.Range(70, 5)); } stream.Position = 0; using (var tf = TeaFile <int> .OpenRead(stream)) { tf.Count.Should().Be(10); tf.Read().Should().Be(70); tf.Read().Should().Be(71); tf.Read().Should().Be(72); tf.Read().Should().Be(73); tf.Read().Should().Be(74); tf.Read().Should().Be(6); tf.Read().Should().Be(7); tf.Read().Should().Be(8); tf.Read().Should().Be(9); tf.Read().Should().Be(10); } }
public void OpenWrite() { var filename = "TeaFileTTest_OpenWrite.tea"; using (var tf = TeaFile <int> .Create(filename)) { tf.Count.Should().Be(0); tf.Write(Enumerable.Range(1, 10)); tf.Count.Should().Be(10); } using (var tf = TeaFile <int> .OpenRead(filename)) { tf.Items.ForEach(Console.WriteLine); } using (var tf = TeaFile <int> .OpenWrite(filename)) { tf.Count.Should().Be(10); tf.Write(Enumerable.Range(1, 5)); tf.Count.Should().Be(10); tf.Write(Enumerable.Range(1, 5)); tf.Count.Should().Be(10); tf.Write(Enumerable.Range(1, 5)); tf.Count.Should().Be(15); } Console.WriteLine(".................."); using (var tf = TeaFile <int> .OpenRead(filename)) { tf.Items.ForEach(Console.WriteLine); } }
public void ExoticCoverage() { Executing.This(() => TeaFile <int> .Create((string)null)).Should().Throw <ArgumentNullException>(); Executing.This(() => TeaFile <int> .Create((string)null, "contento", null)).Should().Throw <ArgumentNullException>(); Executing.This(() => TeaFile <int> .Create((string)null, "a", null, true)).Should().Throw <ArgumentNullException>(); Executing.This(() => TeaFile <int> .Create((Stream)null, "a", null, true)).Should().Throw <ArgumentNullException>(); Executing.This(() => TeaFile <int> .Create((Stream)null)).Should().Throw <ArgumentNullException>(); Executing.This(() => TeaFile <int> .Create((Stream)null, "contento", null)).Should().Throw <ArgumentNullException>(); Executing.This(() => TeaFile <int> .OpenRead((Stream)null)).Should().Throw <ArgumentNullException>(); Executing.This(() => TeaFile <int> .OpenRead((Stream)null, ItemDescriptionElements.None)).Should().Throw <ArgumentNullException>(); Executing.This(() => TeaFile <int> .OpenRead((string)null)).Should().Throw <ArgumentNullException>(); Executing.This(() => TeaFile <int> .OpenRead((string)null, ItemDescriptionElements.None)).Should().Throw <ArgumentNullException>(); Executing.This(() => TeaFile <int> .OpenWrite((Stream)null)).Should().Throw <ArgumentNullException>(); Executing.This(() => TeaFile <int> .OpenWrite((Stream)null, ItemDescriptionElements.None)).Should().Throw <ArgumentNullException>(); Executing.This(() => TeaFile <int> .OpenWrite((string)null)).Should().Throw <ArgumentNullException>(); Executing.This(() => TeaFile <int> .OpenWrite((string)null, ItemDescriptionElements.None)).Should().Throw <ArgumentNullException>(); Executing.This(() => TeaFile <int> .Append(null)).Should().Throw <ArgumentNullException>(); Executing.This(() => TeaFile <int> .Append(null)).Should().Throw <ArgumentNullException>(); Executing.This(() => TeaFile <int> .Append(null, ItemDescriptionElements.None)).Should().Throw <ArgumentNullException>(); var stream = new MemoryStream(); using (var tf = TeaFile <int> .Create(stream)) { tf.Write(Enumerable.Range(100, 7)); } stream.Position = 0; using (var tf = TeaFile <int> .OpenRead(stream)) { tf.Items.GetEnumerator().Should().Not.Be.Null(); } }
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 OpenWriteOnNonExistingFile() { var filename = "TeaFileTTest_OpenWriteOnNonExistingFile.tea"; Executing.This(() => TeaFile <int> .OpenWrite(filename)).Should().Throw(); }