Skip to content

Latest commit

 

History

History
132 lines (102 loc) · 4.65 KB

File metadata and controls

132 lines (102 loc) · 4.65 KB

VerifyZip

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

snippet source | anchor

Filtering

[Fact]
public Task WithZipFiltered() =>
    VerifyZip(
        zipPath,
        include: filePath => filePath.FullName.Contains("Doc"));

snippet source | anchor

Optional Info

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

snippet source | anchor

FileScrubber

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

snippet source | anchor

This applies to files where the extensions is a known text file as defined by FileExtensions.IsText.

Including structure

Use includeStructure: true to include a file structure.verified.md that contains the zip directory structure.

[Fact]
public Task WithZipAndStructure() =>
    VerifyZip(zipPath, includeStructure: true);

snippet source | anchor

PersistArchive

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

snippet source | anchor

ArchiveExtension

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

snippet source | anchor

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.