From 3c2f4ebe9bf46d060dfe5f094f89799311d1201c Mon Sep 17 00:00:00 2001 From: Matt Kotsenas Date: Wed, 11 Jul 2018 16:42:03 -0700 Subject: [PATCH] Combine ForwardOnlyStream and NonSeekableStream Delete `NonSeekableStream` used in Zip64 tests in favor of `ForwardOnlyStream` used in Mocks. Additionally, delete the `ForwardOnlyStream.ReadByte` implementation as the implementation on the base Stream is sufficient. --- .../Mocks/ForwardOnlyStream.cs | 5 --- tests/SharpCompress.Test/Zip/Zip64Tests.cs | 36 ++----------------- 2 files changed, 2 insertions(+), 39 deletions(-) diff --git a/tests/SharpCompress.Test/Mocks/ForwardOnlyStream.cs b/tests/SharpCompress.Test/Mocks/ForwardOnlyStream.cs index b5e5bbf1..aaa52c51 100644 --- a/tests/SharpCompress.Test/Mocks/ForwardOnlyStream.cs +++ b/tests/SharpCompress.Test/Mocks/ForwardOnlyStream.cs @@ -50,11 +50,6 @@ namespace SharpCompress.Test.Mocks return stream.Read(buffer, offset, count); } - public override int ReadByte() - { - return stream.ReadByte(); - } - public override long Seek(long offset, SeekOrigin origin) { throw new NotSupportedException(); diff --git a/tests/SharpCompress.Test/Zip/Zip64Tests.cs b/tests/SharpCompress.Test/Zip/Zip64Tests.cs index 45725a01..bac9a794 100644 --- a/tests/SharpCompress.Test/Zip/Zip64Tests.cs +++ b/tests/SharpCompress.Test/Zip/Zip64Tests.cs @@ -5,6 +5,7 @@ using SharpCompress.Archives; using SharpCompress.Common; using SharpCompress.Readers; using SharpCompress.Readers.Zip; +using SharpCompress.Test.Mocks; using SharpCompress.Writers; using SharpCompress.Writers.Zip; using Xunit; @@ -133,7 +134,7 @@ namespace SharpCompress.Test.Zip var eo = new ZipWriterEntryOptions() { DeflateCompressionLevel = Compressors.Deflate.CompressionLevel.None }; using (var zip = File.OpenWrite(filename)) - using(var st = forward_only ? (Stream)new NonSeekableStream(zip) : zip) + using(var st = forward_only ? (Stream)new ForwardOnlyStream(zip) : zip) using (var zipWriter = (ZipWriter)WriterFactory.Open(st, ArchiveType.Zip, opts)) { @@ -186,38 +187,5 @@ namespace SharpCompress.Test.Zip ); } } - - /// - /// Helper to create non-seekable streams from filestream - /// - private class NonSeekableStream : Stream - { - private readonly Stream stream; - public NonSeekableStream(Stream s) { stream = s; } - public override bool CanRead => stream.CanRead; - public override bool CanSeek => false; - public override bool CanWrite => stream.CanWrite; - public override long Length => throw new NotImplementedException(); - public override long Position { get => throw new NotImplementedException(); set => throw new NotImplementedException(); } - public override void Flush() { stream.Flush(); } - - public override int Read(byte[] buffer, int offset, int count) - { return stream.Read(buffer, offset, count); } - - public override int ReadByte() - { return stream.ReadByte(); } - - public override long Seek(long offset, SeekOrigin origin) - { throw new NotImplementedException(); } - - public override void SetLength(long value) - { throw new NotImplementedException(); } - - public override void Write(byte[] buffer, int offset, int count) - { stream.Write(buffer, offset, count); } - - public override void WriteByte(byte value) - { stream.WriteByte(value); } - } } } \ No newline at end of file