Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Test plan for 0.9.1-beta.23203.3 release #628

Closed
2 tasks done
dtivel opened this issue Apr 5, 2023 · 1 comment
Closed
2 tasks done

Test plan for 0.9.1-beta.23203.3 release #628

dtivel opened this issue Apr 5, 2023 · 1 comment
Assignees

Comments

@dtivel
Copy link
Collaborator

dtivel commented Apr 5, 2023

Automated tests (results)

High-level overview of tests:

  • CLI
    • as appropriate, verify the optionality, arity, default value, and parsing of each command and its options
    • verify that the built-in help command is enabled
  • Signature providers
    • verify that each provider correctly identifies files it can sign
    • verify that the aggregating signature provider correctly calls specialized signature providers as appropriate
    • verify that the aggregating signature provider handles both files and containers with arbitrary levels of nesting
  • File lists
    • verify use of glob and anti-glob patterns
    • verify that file system path matches are case insensitive
    • verify that paths referencing a parent directory have the parent directory removed
  • File argument glob patterns
  • Signing and timestamping different file types
    • portable executable file (.dll)
    • PowerShell script (.ps1)
    • MSIX bundle (.msixbundle)
    • MSIX (.msix)
    • VSIX (.vsix)
full list of 438 tests
    Sign.Core.Test.CertificateVerifierTests.Constructor_WhenLoggerIsNull_Throws
    Sign.Core.Test.CertificateVerifierTests.Verify_WhenCertificateIsNull_Throws
    Sign.Core.Test.CertificateVerifierTests.Verify_WhenCertificateIsNotYetTimeValid_LogsWarning
    Sign.Core.Test.CertificateVerifierTests.Verify_WhenCertificateIsExpired_LogsWarning
    Sign.Core.Test.CertificateVerifierTests.Verify_WhenCertificateIsTimeValid_DoesNotLogWarning
    Sign.Core.Test.AppxBundleContainerTests.Constructor_WhenAppxIsNull_Throws
    Sign.Core.Test.AppxBundleContainerTests.Constructor_WhenDirectoryServiceIsNull_Throws
    Sign.Core.Test.AppxBundleContainerTests.Constructor_WhenFileMatcherIsNull_Throws
    Sign.Core.Test.AppxBundleContainerTests.Constructor_WhenMakeAppxCliIsNull_Throws
    Sign.Core.Test.AppxBundleContainerTests.Constructor_WhenLoggerIsNull_Throws
    Sign.Core.Test.AppxContainerTests.Constructor_WhenAppxIsNull_Throws
    Sign.Core.Test.AppxContainerTests.Constructor_WhenKeyVaultServiceIsNull_Throws
    Sign.Core.Test.AppxContainerTests.Constructor_WhenDirectoryServiceIsNull_Throws
    Sign.Core.Test.AppxContainerTests.Constructor_WhenFileMatcherIsNull_Throws
    Sign.Core.Test.AppxContainerTests.Constructor_WhenMakeAppxCliIsNull_Throws
    Sign.Core.Test.AppxContainerTests.Constructor_WhenLoggerIsNull_Throws
    Sign.Core.Test.ContainerProviderTests.Constructor_WhenKeyVaultServiceIsNull_Throws
    Sign.Core.Test.ContainerProviderTests.Constructor_WhenDirectoryServiceIsNull_Throws
    Sign.Core.Test.ContainerProviderTests.Constructor_WhenFileMatcherIsNull_Throws
    Sign.Core.Test.ContainerProviderTests.Constructor_WhenMakeAppxCliIsNull_Throws
    Sign.Core.Test.ContainerProviderTests.Constructor_WhenLoggerIsNull_Throws
    Sign.Core.Test.ContainerProviderTests.IsAppxBundleContainer_WhenFileIsNull_Throws
    Sign.Core.Test.ContainerProviderTests.IsAppxBundleContainer_WhenFileExtensionDoesNotMatch_ReturnsFalse(extension: ".dll")
    Sign.Core.Test.ContainerProviderTests.IsAppxBundleContainer_WhenFileExtensionDoesNotMatch_ReturnsFalse(extension: ".msİxbundle")
    Sign.Core.Test.ContainerProviderTests.IsAppxBundleContainer_WhenFileExtensionDoesNotMatch_ReturnsFalse(extension: ".msıxbundle")
    Sign.Core.Test.ContainerProviderTests.IsAppxBundleContainer_WhenFileExtensionMatches_ReturnsTrue(extension: ".appxbundle")
    Sign.Core.Test.ContainerProviderTests.IsAppxBundleContainer_WhenFileExtensionMatches_ReturnsTrue(extension: ".eappxbundle")
    Sign.Core.Test.ContainerProviderTests.IsAppxBundleContainer_WhenFileExtensionMatches_ReturnsTrue(extension: ".emsixbundle")
    Sign.Core.Test.ContainerProviderTests.IsAppxBundleContainer_WhenFileExtensionMatches_ReturnsTrue(extension: ".msixbundle")
    Sign.Core.Test.ContainerProviderTests.IsAppxBundleContainer_WhenFileExtensionMatches_ReturnsTrue(extension: ".MSIXBUNDLE")
    Sign.Core.Test.ContainerProviderTests.IsAppxContainer_WhenFileIsNull_Throws
    Sign.Core.Test.ContainerProviderTests.IsAppxContainer_WhenFileExtensionDoesNotMatch_ReturnsFalse(extension: ".dll")
    Sign.Core.Test.ContainerProviderTests.IsAppxContainer_WhenFileExtensionDoesNotMatch_ReturnsFalse(extension: ".msİx")
    Sign.Core.Test.ContainerProviderTests.IsAppxContainer_WhenFileExtensionDoesNotMatch_ReturnsFalse(extension: ".msıx")
    Sign.Core.Test.ContainerProviderTests.IsAppxContainer_WhenFileExtensionMatches_ReturnsTrue(extension: ".appx")
    Sign.Core.Test.ContainerProviderTests.IsAppxContainer_WhenFileExtensionMatches_ReturnsTrue(extension: ".eappx")
    Sign.Core.Test.ContainerProviderTests.IsAppxContainer_WhenFileExtensionMatches_ReturnsTrue(extension: ".emsix")
    Sign.Core.Test.ContainerProviderTests.IsAppxContainer_WhenFileExtensionMatches_ReturnsTrue(extension: ".msix")
    Sign.Core.Test.ContainerProviderTests.IsAppxContainer_WhenFileExtensionMatches_ReturnsTrue(extension: ".MSIX")
    Sign.Core.Test.ContainerProviderTests.IsNuGetContainer_WhenFileIsNull_Throws
    Sign.Core.Test.ContainerProviderTests.IsNuGetContainer_WhenFileExtensionDoesNotMatch_ReturnsFalse(extension: ".zip")
    Sign.Core.Test.ContainerProviderTests.IsNuGetContainer_WhenFileExtensionMatches_ReturnsTrue(extension: ".nupkg")
    Sign.Core.Test.ContainerProviderTests.IsNuGetContainer_WhenFileExtensionMatches_ReturnsTrue(extension: ".snupkg")
    Sign.Core.Test.ContainerProviderTests.IsNuGetContainer_WhenFileExtensionMatches_ReturnsTrue(extension: ".NuPkg")
    Sign.Core.Test.ContainerProviderTests.IsZipContainer_WhenFileIsNull_Throws
    Sign.Core.Test.ContainerProviderTests.IsZipContainer_WhenFileExtensionDoesNotMatch_ReturnsFalse(extension: ".dll")
    Sign.Core.Test.ContainerProviderTests.IsZipContainer_WhenFileExtensionDoesNotMatch_ReturnsFalse(extension: ".msİx")
    Sign.Core.Test.ContainerProviderTests.IsZipContainer_WhenFileExtensionDoesNotMatch_ReturnsFalse(extension: ".msıx")
    Sign.Core.Test.ContainerProviderTests.IsZipContainer_WhenFileExtensionMatches_ReturnsTrue(extension: ".appxupload")
    Sign.Core.Test.ContainerProviderTests.IsZipContainer_WhenFileExtensionMatches_ReturnsTrue(extension: ".clickonce")
    Sign.Core.Test.ContainerProviderTests.IsZipContainer_WhenFileExtensionMatches_ReturnsTrue(extension: ".msixupload")
    Sign.Core.Test.ContainerProviderTests.IsZipContainer_WhenFileExtensionMatches_ReturnsTrue(extension: ".vsix")
    Sign.Core.Test.ContainerProviderTests.IsZipContainer_WhenFileExtensionMatches_ReturnsTrue(extension: ".zip")
    Sign.Core.Test.ContainerProviderTests.IsZipContainer_WhenFileExtensionMatches_ReturnsTrue(extension: ".ZIP")
    Sign.Core.Test.ContainerProviderTests.GetContainer_WhenFileIsNull_Throws
    Sign.Core.Test.ContainerProviderTests.GetContainer_WhenFileExtensionDoesNotMatch_ReturnsFalse
    Sign.Core.Test.ContainerProviderTests.GetContainer_WhenFileExtensionMatchesZip_ReturnsContainer
    Sign.Core.Test.ContainerProviderTests.GetContainer_WhenFileExtensionMatchesAppx_ReturnsContainer
    Sign.Core.Test.ContainerProviderTests.GetContainer_WhenFileExtensionMatchesAppxBundle_ReturnsContainer
    Sign.Core.Test.NuGetContainerTests.Constructor_WhenZipFileIsNull_Throws
    Sign.Core.Test.NuGetContainerTests.Constructor_WhenDirectoryServiceIsNull_Throws
    Sign.Core.Test.NuGetContainerTests.Constructor_WhenFileMatcherIsNull_Throws
    Sign.Core.Test.NuGetContainerTests.Constructor_WhenLoggerIsNull_Throws
    Sign.Core.Test.NuGetContainerTests.Dispose_WhenOpened_RemovesTemporaryDirectory
    Sign.Core.Test.NuGetContainerTests.OpenAsync_WhenNupkgFileIsNonEmpty_ExtractsNupkgToDirectory
    Sign.Core.Test.NuGetContainerTests.SaveAsync_WhenNupkgFileIsNonEmpty_CompressesNupkgFromDirectory
    Sign.Core.Test.NuGetContainerTests.SaveAsync_WhenNupkgFileHasSignatureFile_RemovesSignatureFile
    Sign.Core.Test.ZipContainerTests.Constructor_WhenZipFileIsNull_Throws
    Sign.Core.Test.ZipContainerTests.Constructor_WhenDirectoryServiceIsNull_Throws
    Sign.Core.Test.ZipContainerTests.Constructor_WhenFileMatcherIsNull_Throws
    Sign.Core.Test.ZipContainerTests.Constructor_WhenLoggerIsNull_Throws
    Sign.Core.Test.ZipContainerTests.Dispose_WhenOpened_RemovesTemporaryDirectory
    Sign.Core.Test.ZipContainerTests.OpenAsync_WhenZipFileIsNonEmpty_ExtractsZipToDirectory
    Sign.Core.Test.ZipContainerTests.SaveAsync_WhenZipFileIsNonEmpty_CompressesZipFromDirectory
    Sign.Core.Test.FileListReaderTests.Read_WhenReaderIsNull_Throws
    Sign.Core.Test.FileListReaderTests.Read_WhenFileListIsEmpty_ReturnsMatcher
    Sign.Core.Test.FileListReaderTests.Read_WhenFileListContainsParentDirectoryGlobs_RemovesParentDirectoryInPattern(input: "../*", expectedOutput: "*")
    Sign.Core.Test.FileListReaderTests.Read_WhenFileListContainsParentDirectoryGlobs_RemovesParentDirectoryInPattern(input: "a/../../*", expectedOutput: "a/*")
    Sign.Core.Test.FileListReaderTests.Read_WhenFileListContainsParentDirectoryGlobs_RemovesParentDirectoryInPattern(input: "..\\*", expectedOutput: "*")
    Sign.Core.Test.FileListReaderTests.Read_WhenFileListContainsParentDirectoryGlobs_RemovesParentDirectoryInPattern(input: "a\\..\\..\\*", expectedOutput: "a/*")
    Sign.Core.Test.FileListReaderTests.Read_WhenFileListContainsParentDirectoryAntiGlobs_RemovesParentDirectoryInPattern(input: "!../*", expectedOutput: "*")
    Sign.Core.Test.FileListReaderTests.Read_WhenFileListContainsParentDirectoryAntiGlobs_RemovesParentDirectoryInPattern(input: "!a/../../*", expectedOutput: "a/*")
    Sign.Core.Test.FileListReaderTests.Read_WhenFileListContainsParentDirectoryAntiGlobs_RemovesParentDirectoryInPattern(input: "!..\\*", expectedOutput: "*")
    Sign.Core.Test.FileListReaderTests.Read_WhenFileListContainsParentDirectoryAntiGlobs_RemovesParentDirectoryInPattern(input: "!a\\..\\..\\*", expectedOutput: "a/*")
    Sign.Core.Test.FileListReaderTests.Read_WhenFileListContainsIncludes_ReturnsMatcher
    Sign.Core.Test.FileListReaderTests.Read_WhenFileListContainsBothIncludeAndExclude_ReturnsMatcher
    Sign.Core.Test.FileMatcherTests.EnumerateMatches_WhenDirectoryIsNull_Throws
    Sign.Core.Test.FileMatcherTests.EnumerateMatches_WhenMatcherIsNull_Throws
    Sign.Core.Test.FileMatcherTests.EnumerateMatches_WhenMatcherHasInclusion_IncludesFiles
    Sign.Core.Test.FileMatcherTests.EnumerateMatches_WhenMatcherHasOnlyExclusion_ReturnsEmptyResults
    Sign.Core.Test.FileMatcherTests.EnumerateMatches_WhenMatcherHasBothInclusionAndExclusion_IncludesAndExcludesFiles
    Sign.Core.Test.FileMatcherTests.EnumerateMatches_WhenFilesDifferOnlyInCasing_AppliesMatchCaseSensitively
    Sign.Core.Test.MatcherFactoryTests.StringComparison_Always_IsCaseInsensitive
    Sign.Core.Test.MatcherFactoryTests.Create_Always_CreatesCaseInsensitiveMatcher(fileName: "file.ZIP")
    Sign.Core.Test.MatcherFactoryTests.Create_Always_CreatesCaseInsensitiveMatcher(fileName: "file.zip")
    Sign.Core.Test.MatcherFactoryTests.Create_Always_CreatesCaseInsensitiveMatcher(fileName: "file.zİp")
    Sign.Core.Test.MatcherFactoryTests.Create_Always_CreatesCaseInsensitiveMatcher(fileName: "file.zıp")
    Sign.Core.Test.AppRootDirectoryLocatorTests.Directory_Always_ReturnsDirectoryOfSignCoreDll
    Sign.Core.Test.DirectoryServiceTests.Constructor_WhenLoggerIsNull_Throws
    Sign.Core.Test.DirectoryServiceTests.CreateTemporaryDirectory_Always_CreatesDirectory
    Sign.Core.Test.DirectoryServiceTests.Delete_WhenDirectoryIsNull_Throws
    Sign.Core.Test.DirectoryServiceTests.Delete_Always_DeletesDirectory
    Sign.Core.Test.DirectoryServiceTests.Dispose_Always_DeletesDirectory
    Sign.Core.Test.FileInfoComparerTests.Instance_Always_ReturnsSameInstance
    Sign.Core.Test.FileInfoComparerTests.Equals_WhenArgumentsAreSameInstance_ReturnsTrue
    Sign.Core.Test.FileInfoComparerTests.Equals_WhenArgumentsAreDifferentInstancesWithSameFullName_ReturnsTrue
    Sign.Core.Test.FileInfoComparerTests.Equals_WhenArgumentsAreDifferentInstancesWithSameFullNameButDifferentCasing_ReturnsFalse
    Sign.Core.Test.FileInfoComparerTests.Equals_WhenArgumentsAreDifferentInstancesWithDifferentFullName_ReturnsFalse
    Sign.Core.Test.FileInfoComparerTests.Equals_WhenOnlyOneArgumentIsNull_ReturnsFalse
    Sign.Core.Test.FileInfoComparerTests.Equals_WhenBothArgumentsAreNull_ReturnsTrue
    Sign.Core.Test.FileInfoComparerTests.GetHashCode_Always_ReturnsFullNameHashCode
    Sign.Core.Test.FileMetadataServiceTests.IsPortableExecutable_WhenFileIsNull_Throws
    Sign.Core.Test.FileMetadataServiceTests.IsPortableExecutable_WhenFileIsNotMatch_ReturnsFalse
    Sign.Core.Test.FileMetadataServiceTests.IsPortableExecutable_WhenFileIsMatch_ReturnsTrue
    Sign.Core.Test.TemporaryDirectoryTests.Constructor_WhenDirectoryIsNull_Throws
    Sign.Core.Test.TemporaryDirectoryTests.Constructor_Always_CreatesDirectory
    Sign.Core.Test.TemporaryDirectoryTests.Directory_Always_ReturnsRootDirectory
    Sign.Core.Test.TemporaryDirectoryTests.Dispose_Always_DeletesDirectory
    Sign.Core.Test.ServiceProviderTests.Constructor_WhenServiceProviderIsNull_Throws
    Sign.Core.Test.ServiceProviderTests.CreateDefault_Always_RegistersRequiredServices
    Sign.Core.Test.ServiceProviderTests.CreateDefault_Always_ConfiguresLoggingVerbosity(logLevel: Trace)
    Sign.Core.Test.ServiceProviderTests.CreateDefault_Always_ConfiguresLoggingVerbosity(logLevel: Debug)
    Sign.Core.Test.ServiceProviderTests.CreateDefault_Always_ConfiguresLoggingVerbosity(logLevel: Information)
    Sign.Core.Test.ServiceProviderTests.CreateDefault_Always_ConfiguresLoggingVerbosity(logLevel: Warning)
    Sign.Core.Test.ServiceProviderTests.CreateDefault_Always_ConfiguresLoggingVerbosity(logLevel: Error)
    Sign.Core.Test.ServiceProviderTests.CreateDefault_Always_ConfiguresLoggingVerbosity(logLevel: Critical)
    Sign.Core.Test.ServiceProviderTests.CreateDefault_Always_ConfiguresLoggingVerbosity(logLevel: None)
    Sign.Core.Test.AggregatingSignatureProviderTests.SignAsync_WhenFileIsEmptyAppxBundleContainer_SignsNothing
    Sign.Core.Test.AggregatingSignatureProviderTests.SignAsync_WhenFileIsAppxBundleContainer_SignsNestedAppxAndMsixFiles
    Sign.Core.Test.AggregatingSignatureProviderTests.SignAsync_WhenFileIsAppxBundleContainerAndGlobAndAntiGlobPatternsAreUsed_SignsOnlyMatchingFiles
    Sign.Core.Test.AggregatingSignatureProviderTests.SignAsync_WhenFileIsEmptyAppxContainer_SignsNothing
    Sign.Core.Test.AggregatingSignatureProviderTests.SignAsync_WhenFileIsAppxContainer_SignsPortableExecutableFiles
    Sign.Core.Test.AggregatingSignatureProviderTests.SignAsync_WhenFileIsAppxContainerWithNestedContentAndContainers_SignsContentInsideOut
    Sign.Core.Test.AggregatingSignatureProviderTests.SignAsync_WhenFileIsAppxContainerAndGlobAndAntiGlobPatternsAreUsed_SignsOnlyMatchingFiles
    Sign.Core.Test.AggregatingSignatureProviderTests.SignAsync_WhenFileIsEmptyZipContainer_SignsNothing
    Sign.Core.Test.AggregatingSignatureProviderTests.SignAsync_WhenFileIsZipContainer_SignsPortableExecutableFiles
    Sign.Core.Test.AggregatingSignatureProviderTests.SignAsync_WhenFileIsZipContainerWithNestedContentAndContainers_SignsContentInsideOut
    Sign.Core.Test.AggregatingSignatureProviderTests.SignAsync_WhenFileIsZipContainerAndGlobAndAntiGlobPatternsAreUsed_SignsOnlyMatchingFiles
    Sign.Core.Test.AggregatingSignatureProviderTests.Constructor_WhenSignatureProvidersIsNull_Throws
    Sign.Core.Test.AggregatingSignatureProviderTests.Constructor_WhenDefaultSignatureProviderIsNull_Throws
    Sign.Core.Test.AggregatingSignatureProviderTests.Constructor_WhenContainerProviderIsNull_Throws
    Sign.Core.Test.AggregatingSignatureProviderTests.Constructor_WhenFileMetadataServiceIsNull_Throws
    Sign.Core.Test.AggregatingSignatureProviderTests.Constructor_WhenMatcherFactoryIsNull_Throws
    Sign.Core.Test.AggregatingSignatureProviderTests.CanSign_WhenFileIsNull_Throws
    Sign.Core.Test.AggregatingSignatureProviderTests.CanSign_WhenSignatureProviderReturnsTrue_ReturnsTrue
    Sign.Core.Test.AggregatingSignatureProviderTests.CanSign_WhenSignatureProviderReturnsFalse_ReturnsFalse
    Sign.Core.Test.AggregatingSignatureProviderTests.CanSign_WhenExtensionIsSpecialCase_ReturnsTrue(extension: ".appxupload")
    Sign.Core.Test.AggregatingSignatureProviderTests.CanSign_WhenExtensionIsSpecialCase_ReturnsTrue(extension: ".msixupload")
    Sign.Core.Test.AggregatingSignatureProviderTests.CanSign_WhenExtensionIsSpecialCase_ReturnsTrue(extension: ".zip")
    Sign.Core.Test.AggregatingSignatureProviderTests.CanSign_WhenExtensionIsSpecialCase_ReturnsTrue(extension: ".ZIP")
    Sign.Core.Test.AggregatingSignatureProviderTests.SignAsync_WhenFilesIsNull_Throws
    Sign.Core.Test.AggregatingSignatureProviderTests.SignAsync_WhenOptionsIsNull_Throws
    Sign.Core.Test.AggregatingSignatureProviderTests.SignAsync_WhenFilesIsEmpty_Returns
    Sign.Core.Test.AggregatingSignatureProviderTests.SignAsync_WhenFilesAreLoosePortableExecutableFiles_SignsAllFiles
    Sign.Core.Test.AppInstallerServiceSignatureProviderTests.Constructor_WhenKeyVaultServiceIsNull_Throws
    Sign.Core.Test.AppInstallerServiceSignatureProviderTests.Constructor_WhenLoggerIsNull_Throws
    Sign.Core.Test.AppInstallerServiceSignatureProviderTests.CanSign_WhenFileIsNull_Throws
    Sign.Core.Test.AppInstallerServiceSignatureProviderTests.CanSign_WhenFileExtensionMatches_ReturnsTrue(extension: ".appInstaller")
    Sign.Core.Test.AppInstallerServiceSignatureProviderTests.CanSign_WhenFileExtensionMatches_ReturnsTrue(extension: ".appinstaller")
    Sign.Core.Test.AppInstallerServiceSignatureProviderTests.CanSign_WhenFileExtensionDoesNotMatch_ReturnsFalse(extension: ".txt")
    Sign.Core.Test.AppInstallerServiceSignatureProviderTests.CanSign_WhenFileExtensionDoesNotMatch_ReturnsFalse(extension: ".appİnstaller")
    Sign.Core.Test.AppInstallerServiceSignatureProviderTests.CanSign_WhenFileExtensionDoesNotMatch_ReturnsFalse(extension: ".appınstaller")
    Sign.Core.Test.AzureSignToolSignatureProviderTests.CanSign_WhenFileIsNull_Throws
    Sign.Core.Test.AzureSignToolSignatureProviderTests.CanSign_WhenFileExtensionMatches_ReturnsTrue(extension: ".appx")
    Sign.Core.Test.AzureSignToolSignatureProviderTests.CanSign_WhenFileExtensionMatches_ReturnsTrue(extension: ".vbs")
    Sign.Core.Test.AzureSignToolSignatureProviderTests.CanSign_WhenFileExtensionMatches_ReturnsTrue(extension: ".sys")
    Sign.Core.Test.AzureSignToolSignatureProviderTests.CanSign_WhenFileExtensionMatches_ReturnsTrue(extension: ".stl")
    Sign.Core.Test.AzureSignToolSignatureProviderTests.CanSign_WhenFileExtensionMatches_ReturnsTrue(extension: ".psm1")
    Sign.Core.Test.AzureSignToolSignatureProviderTests.CanSign_WhenFileExtensionMatches_ReturnsTrue(extension: ".ps1")
    Sign.Core.Test.AzureSignToolSignatureProviderTests.CanSign_WhenFileExtensionMatches_ReturnsTrue(extension: ".ocx")
    Sign.Core.Test.AzureSignToolSignatureProviderTests.CanSign_WhenFileExtensionMatches_ReturnsTrue(extension: ".mst")
    Sign.Core.Test.AzureSignToolSignatureProviderTests.CanSign_WhenFileExtensionMatches_ReturnsTrue(extension: ".msp")
    Sign.Core.Test.AzureSignToolSignatureProviderTests.CanSign_WhenFileExtensionMatches_ReturnsTrue(extension: ".msm")
    Sign.Core.Test.AzureSignToolSignatureProviderTests.CanSign_WhenFileExtensionMatches_ReturnsTrue(extension: ".msixbundle")
    Sign.Core.Test.AzureSignToolSignatureProviderTests.CanSign_WhenFileExtensionMatches_ReturnsTrue(extension: ".msix")
    Sign.Core.Test.AzureSignToolSignatureProviderTests.CanSign_WhenFileExtensionMatches_ReturnsTrue(extension: ".msi")
    Sign.Core.Test.AzureSignToolSignatureProviderTests.CanSign_WhenFileExtensionMatches_ReturnsTrue(extension: ".exe")
    Sign.Core.Test.AzureSignToolSignatureProviderTests.CanSign_WhenFileExtensionMatches_ReturnsTrue(extension: ".emsixbundle")
    Sign.Core.Test.AzureSignToolSignatureProviderTests.CanSign_WhenFileExtensionMatches_ReturnsTrue(extension: ".emsix")
    Sign.Core.Test.AzureSignToolSignatureProviderTests.CanSign_WhenFileExtensionMatches_ReturnsTrue(extension: ".eappxbundle")
    Sign.Core.Test.AzureSignToolSignatureProviderTests.CanSign_WhenFileExtensionMatches_ReturnsTrue(extension: ".eappx")
    Sign.Core.Test.AzureSignToolSignatureProviderTests.CanSign_WhenFileExtensionMatches_ReturnsTrue(extension: ".dll")
    Sign.Core.Test.AzureSignToolSignatureProviderTests.CanSign_WhenFileExtensionMatches_ReturnsTrue(extension: ".cat")
    Sign.Core.Test.AzureSignToolSignatureProviderTests.CanSign_WhenFileExtensionMatches_ReturnsTrue(extension: ".cab")
    Sign.Core.Test.AzureSignToolSignatureProviderTests.CanSign_WhenFileExtensionMatches_ReturnsTrue(extension: ".appxbundle")
    Sign.Core.Test.AzureSignToolSignatureProviderTests.CanSign_WhenFileExtensionMatches_ReturnsTrue(extension: ".vxd")
    Sign.Core.Test.AzureSignToolSignatureProviderTests.CanSign_WhenFileExtensionMatches_ReturnsTrue(extension: ".winmd")
    Sign.Core.Test.AzureSignToolSignatureProviderTests.CanSign_WhenFileExtensionDoesNotMatch_ReturnsFalse(extension: ".txt")
    Sign.Core.Test.AzureSignToolSignatureProviderTests.CanSign_WhenFileExtensionDoesNotMatch_ReturnsFalse(extension: ".msİ")
    Sign.Core.Test.AzureSignToolSignatureProviderTests.CanSign_WhenFileExtensionDoesNotMatch_ReturnsFalse(extension: ".msı")
    Sign.Core.Test.ClickOnceSignatureProviderTests.Constructor_WhenKeyVaultServiceIsNull_Throws
    Sign.Core.Test.ClickOnceSignatureProviderTests.Constructor_WhenContainerProviderIsNull_Throws
    Sign.Core.Test.ClickOnceSignatureProviderTests.Constructor_WhenServiceProviderIsNull_Throws
    Sign.Core.Test.ClickOnceSignatureProviderTests.Constructor_WhenDirectoryServiceIsNull_Throws
    Sign.Core.Test.ClickOnceSignatureProviderTests.Constructor_WhenMageCliIsNull_Throws
    Sign.Core.Test.ClickOnceSignatureProviderTests.Constructor_WhenManifestSignerIsNull_Throws
    Sign.Core.Test.ClickOnceSignatureProviderTests.Constructor_WhenLoggerIsNull_Throws
    Sign.Core.Test.ClickOnceSignatureProviderTests.CanSign_WhenFileIsNull_Throws
    Sign.Core.Test.ClickOnceSignatureProviderTests.CanSign_WhenFileExtensionMatches_ReturnsTrue(extension: ".clickonce")
    Sign.Core.Test.ClickOnceSignatureProviderTests.CanSign_WhenFileExtensionMatches_ReturnsTrue(extension: ".CLICKONCE")
    Sign.Core.Test.ClickOnceSignatureProviderTests.CanSign_WhenFileExtensionDoesNotMatch_ReturnsFalse(extension: ".txt")
    Sign.Core.Test.ClickOnceSignatureProviderTests.CanSign_WhenFileExtensionDoesNotMatch_ReturnsFalse(extension: ".clİckonce")
    Sign.Core.Test.ClickOnceSignatureProviderTests.CanSign_WhenFileExtensionDoesNotMatch_ReturnsFalse(extension: ".clıckonce")
    Sign.Core.Test.ClickOnceSignatureProviderTests.SignAsync_WhenFilesIsNull_Throws
    Sign.Core.Test.ClickOnceSignatureProviderTests.SignAsync_WhenOptionsIsNull_Throws
    Sign.Core.Test.ClickOnceSignatureProviderTests.SignAsync_WhenFilesIsClickOnceFile_Signs(publisherName: null)
    Sign.Core.Test.ClickOnceSignatureProviderTests.SignAsync_WhenFilesIsClickOnceFile_Signs(publisherName: "PublisherName")
    Sign.Core.Test.DefaultSignatureProviderTests.Constructor_WhenServiceProviderIsNull_Throws
    Sign.Core.Test.DefaultSignatureProviderTests.SignatureProvider_WhenAzureSignToolSignatureProviderIsUnavailable_IsFallback
    Sign.Core.Test.DefaultSignatureProviderTests.SignatureProvider_WhenAzureSignToolSignatureProviderIsAvailable_IsFallback
    Sign.Core.Test.DefaultSignatureProviderTests.CanSign_WhenAzureSignToolSignatureProviderIsUnavailable_ReturnsFalse
    Sign.Core.Test.DefaultSignatureProviderTests.CanSign_WhenAzureSignToolSignatureProviderIsAvailable_ReturnsTrue
    Sign.Core.Test.DefaultSignatureProviderTests.CanSign_WhenIAzureSignToolSignatureProviderIsAvailable_ReturnsTrue(expectedValue: True)
    Sign.Core.Test.DefaultSignatureProviderTests.CanSign_WhenIAzureSignToolSignatureProviderIsAvailable_ReturnsTrue(expectedValue: False)
    Sign.Core.Test.DefaultSignatureProviderTests.SignAsync_WhenFilesIsNull_Throws
    Sign.Core.Test.DefaultSignatureProviderTests.SignAsync_WhenOptionsIsNull_Throws
    Sign.Core.Test.DefaultSignatureProviderTests.SignAsync_WhenIAzureSignToolSignatureProviderIsAvailable_InvokesInnerProvider
    Sign.Core.Test.DistinguishedNameParserTests.Parse_WhenSubjectIsValid_ReturnsRelativeDistinguishedNames
    Sign.Core.Test.NuGetSignatureProviderTests.Constructor_WhenKeyVaultServiceIsNull_Throws
    Sign.Core.Test.NuGetSignatureProviderTests.Constructor_WhenNuGetSignToolIsNull_Throws
    Sign.Core.Test.NuGetSignatureProviderTests.Constructor_WhenLoggerIsNull_Throws
    Sign.Core.Test.NuGetSignatureProviderTests.CanSign_WhenFileIsNull_Throws
    Sign.Core.Test.NuGetSignatureProviderTests.CanSign_WhenFileExtensionMatches_ReturnsTrue(extension: ".nupkg")
    Sign.Core.Test.NuGetSignatureProviderTests.CanSign_WhenFileExtensionMatches_ReturnsTrue(extension: ".NUPKG")
    Sign.Core.Test.NuGetSignatureProviderTests.CanSign_WhenFileExtensionMatches_ReturnsTrue(extension: ".snupkg")
    Sign.Core.Test.NuGetSignatureProviderTests.CanSign_WhenFileExtensionDoesNotMatch_ReturnsFalse
    Sign.Core.Test.RSAPKCS1SHA256SignatureDescriptionTests.Constructor_Always_InitializesProperties
    Sign.Core.Test.RSAPKCS1SHA256SignatureDescriptionTests.CreateDigest_Always_ReturnsSha256
    Sign.Core.Test.VsixSignatureProviderTests.Constructor_WhenKeyVaultServiceIsNull_Throws
    Sign.Core.Test.VsixSignatureProviderTests.Constructor_WhenNuGetSignToolIsNull_Throws
    Sign.Core.Test.VsixSignatureProviderTests.Constructor_WhenLoggerIsNull_Throws
    Sign.Core.Test.VsixSignatureProviderTests.CanSign_WhenFileIsNull_Throws
    Sign.Core.Test.VsixSignatureProviderTests.CanSign_WhenFileExtensionMatches_ReturnsTrue(extension: ".vsix")
    Sign.Core.Test.VsixSignatureProviderTests.CanSign_WhenFileExtensionMatches_ReturnsTrue(extension: ".VSIX")
    Sign.Core.Test.VsixSignatureProviderTests.CanSign_WhenFileExtensionDoesNotMatch_ReturnsFalse(extension: ".txt")
    Sign.Core.Test.VsixSignatureProviderTests.CanSign_WhenFileExtensionDoesNotMatch_ReturnsFalse(extension: ".vsİx")
    Sign.Core.Test.VsixSignatureProviderTests.CanSign_WhenFileExtensionDoesNotMatch_ReturnsFalse(extension: ".vsıx")
    Sign.Core.Test.SignerTests.Constructor_WhenServiceProviderIsNull_Throws
    Sign.Core.Test.SignerTests.Constructor_WhenLoggerIsNull_Throws
    Sign.Core.Test.SignerTests.SignAsync_WhenFileIsPortableExecutable_Signs
    Sign.Core.Test.SignerTests.SignAsync_WhenFileIsPowerShellScript_Signs
    Sign.Core.Test.SignerTests.SignAsync_WhenFileIsVsix_Signs
    Sign.Core.Test.SignerTests.SignAsync_WhenFileIsMsixBundle_Signs
    Sign.Core.Test.ToolConfigurationProviderTests.Constructor_WhenAppRootDirectoryLocatorIsNull_Throws
    Sign.Core.Test.ToolConfigurationProviderTests.Mage_Always_ReturnsFile
    Sign.Core.Test.ToolConfigurationProviderTests.MakeAppx_Always_ReturnsFile
    Sign.Core.Test.ToolConfigurationProviderTests.SignToolManifest_Always_ReturnsFile
    Sign.Cli.Test.AzureKeyVaultCommandTests.Constructor_WhenCodeCommandIsNull_Throws
    Sign.Cli.Test.AzureKeyVaultCommandTests.Constructor_WhenServiceProviderFactoryIsNull_Throws
    Sign.Cli.Test.AzureKeyVaultCommandTests.CertificateOption_Always_HasArityOfExactlyOne
    Sign.Cli.Test.AzureKeyVaultCommandTests.CertificateOption_Always_IsRequired
    Sign.Cli.Test.AzureKeyVaultCommandTests.ClientIdOption_Always_HasArityOfExactlyOne
    Sign.Cli.Test.AzureKeyVaultCommandTests.ClientIdOption_Always_IsNotRequired
    Sign.Cli.Test.AzureKeyVaultCommandTests.ClientSecretOption_Always_HasArityOfExactlyOne
    Sign.Cli.Test.AzureKeyVaultCommandTests.ClientSecretOption_Always_IsNotRequired
    Sign.Cli.Test.AzureKeyVaultCommandTests.ManagedIdentityOption_Always_HasArityOfZeroOrOne
    Sign.Cli.Test.AzureKeyVaultCommandTests.ManagedIdentityOption_Always_IsNotRequired
    Sign.Cli.Test.AzureKeyVaultCommandTests.TenantIdOption_Always_HasArityOfExactlyOne
    Sign.Cli.Test.AzureKeyVaultCommandTests.TenantIdOption_Always_IsNotRequired
    Sign.Cli.Test.AzureKeyVaultCommandTests.UrlOption_Always_HasArityOfExactlyOne
    Sign.Cli.Test.AzureKeyVaultCommandTests.UrlOption_Always_IsRequired
    Sign.Cli.Test.CodeCommandTests.BaseDirectoryOption_Always_HasArityOfExactlyOne
    Sign.Cli.Test.CodeCommandTests.BaseDirectoryOption_Always_IsNotRequired
    Sign.Cli.Test.CodeCommandTests.DescriptionOption_Always_HasArityOfExactlyOne
    Sign.Cli.Test.CodeCommandTests.DescriptionOption_Always_IsRequired
    Sign.Cli.Test.CodeCommandTests.DescriptionUrlOption_Always_HasArityOfExactlyOne
    Sign.Cli.Test.CodeCommandTests.DescriptionUrlOption_Always_IsRequired
    Sign.Cli.Test.CodeCommandTests.FileDigestOption_Always_HasArityOfExactlyOne
    Sign.Cli.Test.CodeCommandTests.FileDigestOption_Always_IsNotRequired
    Sign.Cli.Test.CodeCommandTests.FileListOption_Always_HasArityOfExactlyOne
    Sign.Cli.Test.CodeCommandTests.FileListOption_Always_IsNotRequired
    Sign.Cli.Test.CodeCommandTests.MaxConcurrencyOption_Always_HasArityOfExactlyOne
    Sign.Cli.Test.CodeCommandTests.MaxConcurrencyOption_Always_IsNotRequired
    Sign.Cli.Test.CodeCommandTests.OutputOption_Always_HasArityOfExactlyOne
    Sign.Cli.Test.CodeCommandTests.OutputOption_Always_IsNotRequired
    Sign.Cli.Test.CodeCommandTests.PublisherNameOption_Always_HasArityOfExactlyOne
    Sign.Cli.Test.CodeCommandTests.PublisherNameOption_Always_IsNotRequired
    Sign.Cli.Test.CodeCommandTests.TimestampDigestOption_Always_HasArityOfExactlyOne
    Sign.Cli.Test.CodeCommandTests.TimestampDigestOption_Always_IsNotRequired
    Sign.Cli.Test.CodeCommandTests.TimestampUrlOption_Always_HasArityOfExactlyOne
    Sign.Cli.Test.CodeCommandTests.TimestampUrlOption_Always_IsNotRequired
    Sign.Cli.Test.CodeCommandTests.VerbosityOption_Always_HasArityOfExactlyOne
    Sign.Cli.Test.CodeCommandTests.VerbosityOption_Always_IsNotRequired
    Sign.Cli.Test.ApplicationNameOptionTests.Option_WhenOptionIsMissing_HasParseErrorsOnlyIfRequired
    Sign.Cli.Test.ApplicationNameOptionTests.Option_WithOnlyValue_HasParseErrors
    Sign.Cli.Test.ApplicationNameOptionTests.Option_WithShortOptionAndMissingValue_HasParseErrors
    Sign.Cli.Test.ApplicationNameOptionTests.Option_WithLongOptionAndMissingValue_HasParseErrors
    Sign.Cli.Test.ApplicationNameOptionTests.Option_WithShortOptionThenValue_ParsesValueOnlyIfShortOptionHasSingleCharacterAlias
    Sign.Cli.Test.ApplicationNameOptionTests.Option_WithShortOptionSpaceThenValue_ParsesValue
    Sign.Cli.Test.ApplicationNameOptionTests.Option_WithLongOptionSpaceThenValue_ParsesValue
    Sign.Cli.Test.BaseDirectoryOptionTests.Option_WhenOptionIsMissing_HasDefaultValue
    Sign.Cli.Test.BaseDirectoryOptionTests.Option_WhenValueIsNotRooted_HasError(relativePath: "directory")
    Sign.Cli.Test.BaseDirectoryOptionTests.Option_WhenValueIsNotRooted_HasError(relativePath: ".\\directory")
    Sign.Cli.Test.BaseDirectoryOptionTests.Option_WhenValueIsRooted_ParsesValue
    Sign.Cli.Test.BaseDirectoryOptionTests.Option_WhenOptionIsMissing_HasParseErrorsOnlyIfRequired
    Sign.Cli.Test.BaseDirectoryOptionTests.Option_WithOnlyValue_HasParseErrors
    Sign.Cli.Test.BaseDirectoryOptionTests.Option_WithShortOptionAndMissingValue_HasParseErrors
    Sign.Cli.Test.BaseDirectoryOptionTests.Option_WithLongOptionAndMissingValue_HasParseErrors
    Sign.Cli.Test.BaseDirectoryOptionTests.Option_WithShortOptionThenValue_ParsesValueOnlyIfShortOptionHasSingleCharacterAlias
    Sign.Cli.Test.BaseDirectoryOptionTests.Option_WithShortOptionSpaceThenValue_ParsesValue
    Sign.Cli.Test.BaseDirectoryOptionTests.Option_WithLongOptionSpaceThenValue_ParsesValue
    Sign.Cli.Test.DescriptionOptionTests.Option_WhenOptionIsMissing_HasParseErrorsOnlyIfRequired
    Sign.Cli.Test.DescriptionOptionTests.Option_WithOnlyValue_HasParseErrors
    Sign.Cli.Test.DescriptionOptionTests.Option_WithShortOptionAndMissingValue_HasParseErrors
    Sign.Cli.Test.DescriptionOptionTests.Option_WithLongOptionAndMissingValue_HasParseErrors
    Sign.Cli.Test.DescriptionOptionTests.Option_WithShortOptionThenValue_ParsesValueOnlyIfShortOptionHasSingleCharacterAlias
    Sign.Cli.Test.DescriptionOptionTests.Option_WithShortOptionSpaceThenValue_ParsesValue
    Sign.Cli.Test.DescriptionOptionTests.Option_WithLongOptionSpaceThenValue_ParsesValue
    Sign.Cli.Test.DescriptionUrlOptionTests.Option_WhenValueFailsToParse_HasError
    Sign.Cli.Test.DescriptionUrlOptionTests.Option_WithShortOptionAndValidUrl_ParsesValue(url: "http://domain.test")
    Sign.Cli.Test.DescriptionUrlOptionTests.Option_WithShortOptionAndValidUrl_ParsesValue(url: "https://domain.test")
    Sign.Cli.Test.DescriptionUrlOptionTests.Option_WithShortOptionAndInvalidUrl_HasErrors(invalidUrl: "\"\"")
    Sign.Cli.Test.DescriptionUrlOptionTests.Option_WithShortOptionAndInvalidUrl_HasErrors(invalidUrl: "//domain.test")
    Sign.Cli.Test.DescriptionUrlOptionTests.Option_WithShortOptionAndInvalidUrl_HasErrors(invalidUrl: "/path")
    Sign.Cli.Test.DescriptionUrlOptionTests.Option_WithShortOptionAndInvalidUrl_HasErrors(invalidUrl: "file:///file.bin")
    Sign.Cli.Test.DescriptionUrlOptionTests.Option_WhenOptionIsMissing_HasParseErrorsOnlyIfRequired
    Sign.Cli.Test.DescriptionUrlOptionTests.Option_WithOnlyValue_HasParseErrors
    Sign.Cli.Test.DescriptionUrlOptionTests.Option_WithShortOptionAndMissingValue_HasParseErrors
    Sign.Cli.Test.DescriptionUrlOptionTests.Option_WithLongOptionAndMissingValue_HasParseErrors
    Sign.Cli.Test.DescriptionUrlOptionTests.Option_WithShortOptionThenValue_ParsesValueOnlyIfShortOptionHasSingleCharacterAlias
    Sign.Cli.Test.DescriptionUrlOptionTests.Option_WithShortOptionSpaceThenValue_ParsesValue
    Sign.Cli.Test.DescriptionUrlOptionTests.Option_WithLongOptionSpaceThenValue_ParsesValue
    Sign.Cli.Test.FileDigestOptionTests.Option_WhenValueIsSha256_ParsesValue(value: "sha256")
    Sign.Cli.Test.FileDigestOptionTests.Option_WhenValueIsSha256_ParsesValue(value: "SHA256")
    Sign.Cli.Test.FileDigestOptionTests.Option_WhenValueIsSha384_ParsesValue(value: "sha384")
    Sign.Cli.Test.FileDigestOptionTests.Option_WhenValueIsSha384_ParsesValue(value: "SHA384")
    Sign.Cli.Test.FileDigestOptionTests.Option_WhenValueIsSha512_ParsesValue(value: "sha512")
    Sign.Cli.Test.FileDigestOptionTests.Option_WhenValueIsSha512_ParsesValue(value: "SHA512")
    Sign.Cli.Test.FileDigestOptionTests.Verbosity_WhenValueIsInvalid_HasError(value: "md5")
    Sign.Cli.Test.FileDigestOptionTests.Verbosity_WhenValueIsInvalid_HasError(value: "sha1")
    Sign.Cli.Test.FileDigestOptionTests.Verbosity_WhenValueIsInvalid_HasError(value: "sha-256")
    Sign.Cli.Test.FileDigestOptionTests.Option_WhenOptionIsMissing_HasDefaultValue
    Sign.Cli.Test.FileDigestOptionTests.Option_WhenOptionIsMissing_HasParseErrorsOnlyIfRequired
    Sign.Cli.Test.FileDigestOptionTests.Option_WithOnlyValue_HasParseErrors
    Sign.Cli.Test.FileDigestOptionTests.Option_WithShortOptionAndMissingValue_HasParseErrors
    Sign.Cli.Test.FileDigestOptionTests.Option_WithLongOptionAndMissingValue_HasParseErrors
    Sign.Cli.Test.FileDigestOptionTests.Option_WithShortOptionThenValue_ParsesValueOnlyIfShortOptionHasSingleCharacterAlias
    Sign.Cli.Test.FileDigestOptionTests.Option_WithShortOptionSpaceThenValue_ParsesValue
    Sign.Cli.Test.FileDigestOptionTests.Option_WithLongOptionSpaceThenValue_ParsesValue
    Sign.Cli.Test.MaxConcurrencyOptionTests.Option_WhenValueFailsToParse_HasError
    Sign.Cli.Test.MaxConcurrencyOptionTests.Option_WhenOptionIsMissing_HasDefaultValue
    Sign.Cli.Test.MaxConcurrencyOptionTests.Option_WhenValueIsLessThanOne_HasError(value: 0)
    Sign.Cli.Test.MaxConcurrencyOptionTests.Option_WhenValueIsLessThanOne_HasError(value: -1)
    Sign.Cli.Test.MaxConcurrencyOptionTests.Option_WhenOptionIsMissing_HasParseErrorsOnlyIfRequired
    Sign.Cli.Test.MaxConcurrencyOptionTests.Option_WithOnlyValue_HasParseErrors
    Sign.Cli.Test.MaxConcurrencyOptionTests.Option_WithShortOptionAndMissingValue_HasParseErrors
    Sign.Cli.Test.MaxConcurrencyOptionTests.Option_WithLongOptionAndMissingValue_HasParseErrors
    Sign.Cli.Test.MaxConcurrencyOptionTests.Option_WithShortOptionThenValue_ParsesValueOnlyIfShortOptionHasSingleCharacterAlias
    Sign.Cli.Test.MaxConcurrencyOptionTests.Option_WithShortOptionSpaceThenValue_ParsesValue
    Sign.Cli.Test.MaxConcurrencyOptionTests.Option_WithLongOptionSpaceThenValue_ParsesValue
    Sign.Cli.Test.OutputOptionTests.Option_WhenOptionIsMissing_HasParseErrorsOnlyIfRequired
    Sign.Cli.Test.OutputOptionTests.Option_WithOnlyValue_HasParseErrors
    Sign.Cli.Test.OutputOptionTests.Option_WithShortOptionAndMissingValue_HasParseErrors
    Sign.Cli.Test.OutputOptionTests.Option_WithLongOptionAndMissingValue_HasParseErrors
    Sign.Cli.Test.OutputOptionTests.Option_WithShortOptionThenValue_ParsesValueOnlyIfShortOptionHasSingleCharacterAlias
    Sign.Cli.Test.OutputOptionTests.Option_WithShortOptionSpaceThenValue_ParsesValue
    Sign.Cli.Test.OutputOptionTests.Option_WithLongOptionSpaceThenValue_ParsesValue
    Sign.Cli.Test.PublisherNameOptionTests.Option_WhenOptionIsMissing_HasParseErrorsOnlyIfRequired
    Sign.Cli.Test.PublisherNameOptionTests.Option_WithOnlyValue_HasParseErrors
    Sign.Cli.Test.PublisherNameOptionTests.Option_WithShortOptionAndMissingValue_HasParseErrors
    Sign.Cli.Test.PublisherNameOptionTests.Option_WithLongOptionAndMissingValue_HasParseErrors
    Sign.Cli.Test.PublisherNameOptionTests.Option_WithShortOptionThenValue_ParsesValueOnlyIfShortOptionHasSingleCharacterAlias
    Sign.Cli.Test.PublisherNameOptionTests.Option_WithShortOptionSpaceThenValue_ParsesValue
    Sign.Cli.Test.PublisherNameOptionTests.Option_WithLongOptionSpaceThenValue_ParsesValue
    Sign.Cli.Test.TimestampDigestOptionTests.Option_WhenValueIsSha256_ParsesValue(value: "sha256")
    Sign.Cli.Test.TimestampDigestOptionTests.Option_WhenValueIsSha256_ParsesValue(value: "SHA256")
    Sign.Cli.Test.TimestampDigestOptionTests.Option_WhenValueIsSha384_ParsesValue(value: "sha384")
    Sign.Cli.Test.TimestampDigestOptionTests.Option_WhenValueIsSha384_ParsesValue(value: "SHA384")
    Sign.Cli.Test.TimestampDigestOptionTests.Option_WhenValueIsSha512_ParsesValue(value: "sha512")
    Sign.Cli.Test.TimestampDigestOptionTests.Option_WhenValueIsSha512_ParsesValue(value: "SHA512")
    Sign.Cli.Test.TimestampDigestOptionTests.Verbosity_WhenValueIsInvalid_HasError(value: "md5")
    Sign.Cli.Test.TimestampDigestOptionTests.Verbosity_WhenValueIsInvalid_HasError(value: "sha1")
    Sign.Cli.Test.TimestampDigestOptionTests.Verbosity_WhenValueIsInvalid_HasError(value: "sha-256")
    Sign.Cli.Test.TimestampDigestOptionTests.Option_WhenOptionIsMissing_HasDefaultValue
    Sign.Cli.Test.TimestampDigestOptionTests.Option_WhenOptionIsMissing_HasParseErrorsOnlyIfRequired
    Sign.Cli.Test.TimestampDigestOptionTests.Option_WithOnlyValue_HasParseErrors
    Sign.Cli.Test.TimestampDigestOptionTests.Option_WithShortOptionAndMissingValue_HasParseErrors
    Sign.Cli.Test.TimestampDigestOptionTests.Option_WithLongOptionAndMissingValue_HasParseErrors
    Sign.Cli.Test.TimestampDigestOptionTests.Option_WithShortOptionThenValue_ParsesValueOnlyIfShortOptionHasSingleCharacterAlias
    Sign.Cli.Test.TimestampDigestOptionTests.Option_WithShortOptionSpaceThenValue_ParsesValue
    Sign.Cli.Test.TimestampDigestOptionTests.Option_WithLongOptionSpaceThenValue_ParsesValue
    Sign.Cli.Test.TimestampUrlOptionTests.Option_WhenOptionIsMissing_HasDefaultValue
    Sign.Cli.Test.TimestampUrlOptionTests.Option_WhenValueFailsToParse_HasError
    Sign.Cli.Test.TimestampUrlOptionTests.Option_WithShortOptionAndValidUrl_ParsesValue(url: "http://domain.test")
    Sign.Cli.Test.TimestampUrlOptionTests.Option_WithShortOptionAndValidUrl_ParsesValue(url: "https://domain.test")
    Sign.Cli.Test.TimestampUrlOptionTests.Option_WithShortOptionAndInvalidUrl_HasErrors(invalidUrl: "\"\"")
    Sign.Cli.Test.TimestampUrlOptionTests.Option_WithShortOptionAndInvalidUrl_HasErrors(invalidUrl: "//domain.test")
    Sign.Cli.Test.TimestampUrlOptionTests.Option_WithShortOptionAndInvalidUrl_HasErrors(invalidUrl: "/path")
    Sign.Cli.Test.TimestampUrlOptionTests.Option_WithShortOptionAndInvalidUrl_HasErrors(invalidUrl: "file:///file.bin")
    Sign.Cli.Test.TimestampUrlOptionTests.Option_WhenOptionIsMissing_HasParseErrorsOnlyIfRequired
    Sign.Cli.Test.TimestampUrlOptionTests.Option_WithOnlyValue_HasParseErrors
    Sign.Cli.Test.TimestampUrlOptionTests.Option_WithShortOptionAndMissingValue_HasParseErrors
    Sign.Cli.Test.TimestampUrlOptionTests.Option_WithLongOptionAndMissingValue_HasParseErrors
    Sign.Cli.Test.TimestampUrlOptionTests.Option_WithShortOptionThenValue_ParsesValueOnlyIfShortOptionHasSingleCharacterAlias
    Sign.Cli.Test.TimestampUrlOptionTests.Option_WithShortOptionSpaceThenValue_ParsesValue
    Sign.Cli.Test.TimestampUrlOptionTests.Option_WithLongOptionSpaceThenValue_ParsesValue
    Sign.Cli.Test.VerbosityOptionTests.Verbosity_WhenValueIsValid_ParsesValue(logLevel: Trace)
    Sign.Cli.Test.VerbosityOptionTests.Verbosity_WhenValueIsValid_ParsesValue(logLevel: Debug)
    Sign.Cli.Test.VerbosityOptionTests.Verbosity_WhenValueIsValid_ParsesValue(logLevel: Information)
    Sign.Cli.Test.VerbosityOptionTests.Verbosity_WhenValueIsValid_ParsesValue(logLevel: Warning)
    Sign.Cli.Test.VerbosityOptionTests.Verbosity_WhenValueIsValid_ParsesValue(logLevel: Error)
    Sign.Cli.Test.VerbosityOptionTests.Verbosity_WhenValueIsValid_ParsesValue(logLevel: Critical)
    Sign.Cli.Test.VerbosityOptionTests.Verbosity_WhenValueIsValid_ParsesValue(logLevel: None)
    Sign.Cli.Test.VerbosityOptionTests.Verbosity_WhenValueCasingDoesNotMatchEnumMemberCasing_ParsesValue
    Sign.Cli.Test.VerbosityOptionTests.Option_WhenOptionIsMissing_HasParseErrorsOnlyIfRequired
    Sign.Cli.Test.VerbosityOptionTests.Option_WithOnlyValue_HasParseErrors
    Sign.Cli.Test.VerbosityOptionTests.Option_WithShortOptionAndMissingValue_HasParseErrors
    Sign.Cli.Test.VerbosityOptionTests.Option_WithLongOptionAndMissingValue_HasParseErrors
    Sign.Cli.Test.VerbosityOptionTests.Option_WithShortOptionThenValue_ParsesValueOnlyIfShortOptionHasSingleCharacterAlias
    Sign.Cli.Test.VerbosityOptionTests.Option_WithShortOptionSpaceThenValue_ParsesValue
    Sign.Cli.Test.VerbosityOptionTests.Option_WithLongOptionSpaceThenValue_ParsesValue
    Sign.Cli.Test.SignCommandTests.Help_Always_IsEnabled
    Sign.Cli.Test.SignCommandTests.Command_WhenArgumentAndOptionsAreMissing_HasError(command: "code")
    Sign.Cli.Test.SignCommandTests.Command_WhenArgumentAndOptionsAreMissing_HasError(command: "code azure-key-vault")
    Sign.Cli.Test.SignCommandTests.Command_WhenRequiredArgumentIsMissing_HasError
    Sign.Cli.Test.SignCommandTests.Command_WhenAllOptionsAndArgumentAreValid_HasNoError
    Sign.Cli.Test.TemporaryConsoleEncodingTests.Constructor_Always_SetsUtf8Encoding
    Sign.Cli.Test.TemporaryConsoleEncodingTests.Dispose_Always_RevertsEncoding
    Sign.Cli.Test.AzureKeyVaultCommandTests+ParserTests.Command_WhenRequiredArgumentOrOptionsAreMissing_HasError(command: "azure-key-vault")
    Sign.Cli.Test.AzureKeyVaultCommandTests+ParserTests.Command_WhenRequiredArgumentOrOptionsAreMissing_HasError(command: "azure-key-vault a")
    Sign.Cli.Test.AzureKeyVaultCommandTests+ParserTests.Command_WhenRequiredArgumentOrOptionsAreMissing_HasError(command: "azure-key-vault -kvu")
    Sign.Cli.Test.AzureKeyVaultCommandTests+ParserTests.Command_WhenRequiredArgumentOrOptionsAreMissing_HasError(command: "azure-key-vault -kvu https://keyvault.test")
    Sign.Cli.Test.AzureKeyVaultCommandTests+ParserTests.Command_WhenRequiredArgumentOrOptionsAreMissing_HasError(command: "azure-key-vault -kvu https://keyvault.test a")
    Sign.Cli.Test.AzureKeyVaultCommandTests+ParserTests.Command_WhenRequiredArgumentOrOptionsAreMissing_HasError(command: "azure-key-vault -kvu https://keyvault.test -kvc")
    Sign.Cli.Test.AzureKeyVaultCommandTests+ParserTests.Command_WhenRequiredArgumentOrOptionsAreMissing_HasError(command: "azure-key-vault -kvu https://keyvault.test -kvc a")
    Sign.Cli.Test.AzureKeyVaultCommandTests+ParserTests.Command_WhenRequiredArgumentOrOptionsAreMissing_HasError(command: "azure-key-vault -kvu https://keyvault.test -kvc a "...)
    Sign.Cli.Test.AzureKeyVaultCommandTests+ParserTests.Command_WhenRequiredArgumentOrOptionsAreMissing_HasError(command: "azure-key-vault -kvu https://keyvault.test -kvc a "...)
    Sign.Cli.Test.AzureKeyVaultCommandTests+ParserTests.Command_WhenRequiredArgumentOrOptionsAreMissing_HasError(command: "azure-key-vault -kvu https://keyvault.test -kvc a "...)
    Sign.Cli.Test.AzureKeyVaultCommandTests+ParserTests.Command_WhenRequiredArgumentOrOptionsAreMissing_HasError(command: "azure-key-vault -kvu https://keyvault.test -kvc a "...)
    Sign.Cli.Test.AzureKeyVaultCommandTests+ParserTests.Command_WhenRequiredArgumentOrOptionsAreMissing_HasError(command: "azure-key-vault -kvu https://keyvault.test -kvc a "...)
    Sign.Cli.Test.AzureKeyVaultCommandTests+ParserTests.Command_WhenRequiredArgumentOrOptionsAreMissing_HasError(command: "azure-key-vault -kvu https://keyvault.test -kvc a "...)
    Sign.Cli.Test.AzureKeyVaultCommandTests+ParserTests.Command_WhenRequiredArgumentsArePresent_HasNoError(command: "azure-key-vault -kvu https://keyvault.test -kvc a "...)
    Sign.Cli.Test.AzureKeyVaultCommandTests+ParserTests.Command_WhenRequiredArgumentsArePresent_HasNoError(command: "azure-key-vault -kvu https://keyvault.test -kvc a "...)
    Sign.Cli.Test.SignCommandTests+GlobbingTests.Command_WhenFileIsGlobPattern_SignsOnlyMatches
    Sign.Cli.Test.SignCommandTests+GlobbingTests.Command_WhenFileIsGlobPatternWithSubdirectory_SignsOnlyMatches
    Sign.Cli.Test.SignCommandTests+GlobbingTests.Command_WhenFileIsGlobPatternWithBracedExpansion_SignsOnlyMatches

Manual tests

Authentication

  • Verify -kvm / --azure-key-vault-managed-identity works after authenticating with az login
  • Verify -kvt + -kvi + -kvs / --azure-key-vault-tenant-id + --azure-key-vault-client-id + --azure-key-vault-client-secret works. Be sure to log out (az logout) first

Select NuGet .NET SDK tests

See #623

@dtivel dtivel self-assigned this Apr 5, 2023
@dtivel
Copy link
Collaborator Author

dtivel commented Apr 5, 2023

Automated tests

All tests passed in the CI build 20230403.6:

  Running tests: D:\a\_work\1\s\artifacts\bin\Sign.Cli.Test\Release\net6.0\win10-x64\Sign.Cli.Test.dll [net6.0|x64]
  Running tests: D:\a\_work\1\s\artifacts\bin\Sign.Core.Test\Release\net6.0\win10-x64\Sign.Core.Test.dll [net6.0|x64]
  Tests succeeded: D:\a\_work\1\s\artifacts\bin\Sign.Cli.Test\Release\net6.0\win10-x64\Sign.Cli.Test.dll [net6.0|x64]
  Tests succeeded: D:\a\_work\1\s\artifacts\bin\Sign.Core.Test\Release\net6.0\win10-x64\Sign.Core.Test.dll [net6.0|x64]

@dtivel dtivel closed this as completed Apr 5, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant