Files
sharpcompress/tests/SharpCompress.Test/Lzw/LzwReaderAsyncTests.cs
2026-03-06 11:22:09 +00:00

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);
}
}