mirror of
https://github.com/adamhathcock/sharpcompress.git
synced 2026-09-22 15:04:43 +00:00
Add format-specific ArchiveInformation details
This commit is contained in:
committed by
GitHub
parent
0d317bb466
commit
d301cb365f
@@ -760,6 +760,57 @@ public class ArchiveFactoryTests : TestBase
|
||||
Assert.Equal(startPosition, stream.Position);
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData("Zip.none.datadescriptors.zip", true)]
|
||||
[InlineData("Zip.deflate.zip", false)]
|
||||
public void GetArchiveInformation_ZipDataDescriptorEntryCount(
|
||||
string archiveName,
|
||||
bool expectsDataDescriptorTrailers
|
||||
)
|
||||
{
|
||||
using var stream = File.OpenRead(GetTestArchivePath(archiveName));
|
||||
|
||||
var info = ArchiveFactory.GetArchiveInformation(stream);
|
||||
|
||||
Assert.NotNull(info);
|
||||
Assert.Equal(ArchiveType.Zip, info.Type);
|
||||
Assert.NotNull(info.ZipDataDescriptorEntryCount);
|
||||
Assert.Equal(expectsDataDescriptorTrailers, info.ZipDataDescriptorEntryCount > 0);
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData("7Zip.solid.7z", true)]
|
||||
[InlineData("7Zip.nonsolid.7z", false)]
|
||||
[InlineData("Rar.rar", false)]
|
||||
public void GetArchiveInformation_SolidStreamCount(string archiveName, bool expectsSolidStreams)
|
||||
{
|
||||
using var stream = File.OpenRead(GetTestArchivePath(archiveName));
|
||||
|
||||
var info = ArchiveFactory.GetArchiveInformation(stream);
|
||||
|
||||
Assert.NotNull(info);
|
||||
Assert.NotNull(info.SolidStreamCount);
|
||||
Assert.Equal(expectsSolidStreams, info.SolidStreamCount > 0);
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData("Zip.none.datadescriptors.zip", true)]
|
||||
[InlineData("7Zip.solid.7z", true)]
|
||||
public async ValueTask GetArchiveInformationAsync_IncludesFormatSpecificDetails(
|
||||
string archiveName,
|
||||
bool expectsAnyFormatSpecificDetails
|
||||
)
|
||||
{
|
||||
using var stream = File.OpenRead(GetTestArchivePath(archiveName));
|
||||
|
||||
var info = await ArchiveFactory.GetArchiveInformationAsync(stream);
|
||||
|
||||
Assert.NotNull(info);
|
||||
var hasZipDetail = info.ZipDataDescriptorEntryCount > 0;
|
||||
var hasSolidDetail = info.SolidStreamCount > 0;
|
||||
Assert.Equal(expectsAnyFormatSpecificDetails, hasZipDetail || hasSolidDetail);
|
||||
}
|
||||
|
||||
private MemoryStream CreatePrefixedArchiveStream(string archiveName, int prefixLength)
|
||||
{
|
||||
var archiveBytes = File.ReadAllBytes(GetTestArchivePath(archiveName));
|
||||
|
||||
Reference in New Issue
Block a user