mirror of
https://github.com/adamhathcock/sharpcompress.git
synced 2026-04-24 06:59:39 +00:00
44 lines
1.3 KiB
C#
44 lines
1.3 KiB
C#
using System.IO;
|
|
using SharpCompress.Common;
|
|
using SharpCompress.Readers;
|
|
using SharpCompress.Readers.Lzw;
|
|
using Xunit;
|
|
|
|
namespace SharpCompress.Test.Lzw;
|
|
|
|
public class LzwReaderAsyncTests : ReaderTests
|
|
{
|
|
public LzwReaderAsyncTests() => UseExtensionInsteadOfNameToVerify = true;
|
|
|
|
[Fact]
|
|
public async System.Threading.Tasks.Task Lzw_Reader_Async()
|
|
{
|
|
await ReadAsync("Tar.tar.Z", CompressionType.Lzw);
|
|
}
|
|
|
|
[Fact]
|
|
public async System.Threading.Tasks.Task Lzw_Reader_Plain_Z_File_Async()
|
|
{
|
|
// Test async reading of a plain .Z file (not tar-wrapped) using LzwReader directly
|
|
using Stream stream = File.OpenRead(Path.Combine(TEST_ARCHIVES_PATH, "large_test.txt.Z"));
|
|
using var reader = LzwReader.OpenReader(stream);
|
|
|
|
Assert.Equal(ArchiveType.Lzw, reader.Type);
|
|
Assert.True(reader.MoveToNextEntry());
|
|
|
|
var entry = reader.Entry;
|
|
Assert.NotNull(entry);
|
|
Assert.Equal(CompressionType.Lzw, entry.CompressionType);
|
|
|
|
// When opened as FileStream, key should be derived from filename
|
|
Assert.Equal("large_test.txt", entry.Key);
|
|
|
|
// Decompress asynchronously
|
|
using var entryStream = reader.OpenEntryStream();
|
|
using var ms = new MemoryStream();
|
|
await entryStream.CopyToAsync(ms);
|
|
|
|
Assert.Equal(22300, ms.Length);
|
|
}
|
|
}
|