Files
sharpcompress/tests/SharpCompress.Test/GZip/GZipWriterAsyncTests.cs

95 lines
2.9 KiB
C#
Raw Permalink Normal View History

using System.IO;
using System.Threading.Tasks;
using SharpCompress.Common;
2026-01-13 13:56:56 +00:00
using SharpCompress.Test.Mocks;
using SharpCompress.Writers;
using SharpCompress.Writers.GZip;
using Xunit;
namespace SharpCompress.Test.GZip;
public class GZipWriterAsyncTests : WriterTests
{
public GZipWriterAsyncTests()
: base(ArchiveType.GZip) => UseExtensionInsteadOfNameToVerify = true;
[Fact]
2026-01-08 12:35:12 +00:00
public async ValueTask GZip_Writer_Generic_Async()
{
using (
Stream stream = File.Open(
Path.Combine(SCRATCH_FILES_PATH, "Tar.tar.gz"),
FileMode.OpenOrCreate,
FileAccess.Write
)
)
2026-01-13 13:58:31 +00:00
using (
2026-02-12 11:53:19 +00:00
var writer = await WriterFactory.OpenAsyncWriter(
2026-01-13 13:58:31 +00:00
new AsyncOnlyStream(stream),
ArchiveType.GZip,
2026-02-06 15:16:45 +00:00
new WriterOptions(CompressionType.GZip)
2026-01-13 13:58:31 +00:00
)
)
{
await writer.WriteAsync("Tar.tar", Path.Combine(TEST_ARCHIVES_PATH, "Tar.tar"));
}
CompareArchivesByPath(
Path.Combine(SCRATCH_FILES_PATH, "Tar.tar.gz"),
Path.Combine(TEST_ARCHIVES_PATH, "Tar.tar.gz")
);
}
[Fact]
2026-01-08 12:35:12 +00:00
public async ValueTask GZip_Writer_Async()
{
using (
Stream stream = File.Open(
Path.Combine(SCRATCH_FILES_PATH, "Tar.tar.gz"),
FileMode.OpenOrCreate,
FileAccess.Write
)
)
2026-01-13 13:56:56 +00:00
using (var writer = new GZipWriter(new AsyncOnlyStream(stream)))
{
await writer.WriteAsync("Tar.tar", Path.Combine(TEST_ARCHIVES_PATH, "Tar.tar"));
}
CompareArchivesByPath(
Path.Combine(SCRATCH_FILES_PATH, "Tar.tar.gz"),
Path.Combine(TEST_ARCHIVES_PATH, "Tar.tar.gz")
);
}
[Fact]
public void GZip_Writer_Generic_Bad_Compression_Async() =>
Assert.Throws<InvalidFormatException>(() =>
{
using Stream stream = File.OpenWrite(Path.Combine(SCRATCH_FILES_PATH, "Tar.tar.gz"));
2026-01-15 11:41:30 +00:00
using var writer = WriterFactory.OpenWriter(
2026-01-13 13:58:31 +00:00
new AsyncOnlyStream(stream),
ArchiveType.GZip,
2026-02-06 15:16:45 +00:00
new WriterOptions(CompressionType.BZip2)
2026-01-13 13:58:31 +00:00
);
});
[Fact]
2026-01-08 12:35:12 +00:00
public async ValueTask GZip_Writer_Entry_Path_With_Dir_Async()
{
using (
Stream stream = File.Open(
Path.Combine(SCRATCH_FILES_PATH, "Tar.tar.gz"),
FileMode.OpenOrCreate,
FileAccess.Write
)
)
2026-02-13 14:26:54 +00:00
await using (var writer = new GZipWriter(new AsyncOnlyStream(stream)))
{
var path = Path.Combine(TEST_ARCHIVES_PATH, "Tar.tar");
await writer.WriteAsync(path, path);
}
CompareArchivesByPath(
Path.Combine(SCRATCH_FILES_PATH, "Tar.tar.gz"),
Path.Combine(TEST_ARCHIVES_PATH, "Tar.tar.gz")
);
}
}