Verifies all files in a zip archive. This approach combines UseUniqueDirectory with a target per file, to snapshot test all files in a zip archive.
[Fact]
public Task WithZip() =>
VerifyZip(zipPath);[Fact]
public Task WithZipFiltered() =>
VerifyZip(
zipPath,
include: filePath => filePath.FullName.Contains("Doc"));An optional info parameter can be supplied to add more context to the test. The instance passed will be json serialized.
[Fact]
public Task VerifyZipWithInfo() =>
VerifyZip(
zipPath,
info: "the info");VerifyZip has an optional parameter fileScrubber that allows file specific scrubbing:
[Fact]
public Task VerifyZipWithFileScrubber() =>
VerifyZip(
zipPath,
fileScrubber: (path, builder) =>
{
if (Path.GetFileName(path) == "TextDoc.txt")
{
builder.Clear();
builder.Append("New text");
}
});This applies to files where the extensions is a known text file as defined by FileExtensions.IsText.
Use includeStructure: true to include a file structure.verified.md that contains the zip directory structure.
[Fact]
public Task WithZipAndStructure() =>
VerifyZip(zipPath, includeStructure: true);persistArchive determines whether the original ZipArchive or zip file should be preserved as a verified file. Defaults to false.
[Fact]
public Task WithZipAndPersistArchive() =>
VerifyZip(zipPath, persistArchive: true);When using persistArchive the resulting verified archive file extension can be controlled using using the archiveExtension parameter.
[Fact]
public Task WithZipWithCustomExtension() =>
VerifyZip(
File.ReadAllBytes(simpleZipPath),
persistArchive: true,
archiveExtension: "nupkg");The default extension is zip.
Using the VerifyZip with the Stream overload, when the streams is a FileStream the extension of underlying file will be respected.
Using the VerifyZip with the string path overload the extension of underlying file will be respected.