public void InvalidCertificateInvalidatesSignatures(
                EndCertificateUse use,
                X509ChainStatusFlags flags,
                SignatureDecision ingestionDecision,
                SignatureDecision gracePeriodDecision,
                SignatureDecision afterGracePeriodDecision)
            {
                // Arrange
                var certificate = new EndCertificate {
                    Use = use
                };

                var result = new CertificateVerificationResult(
                    status: EndCertificateStatus.Invalid,
                    statusFlags: flags);

                var signatureAtIngestion = new PackageSignature {
                    Status = PackageSignatureStatus.Unknown
                };
                var signatureAtGracePeriod = new PackageSignature {
                    Status = PackageSignatureStatus.InGracePeriod
                };
                var signatureAfterGracePeriod = new PackageSignature {
                    Status = PackageSignatureStatus.Valid
                };

                // Act & Assert
                var decider = _target.MakeDeciderForInvalidatedCertificate(certificate, result);

                Assert.Equal(ingestionDecision, decider(signatureAtIngestion));
                Assert.Equal(gracePeriodDecision, decider(signatureAtGracePeriod));
                Assert.Equal(afterGracePeriodDecision, decider(signatureAfterGracePeriod));
            }
 private static object[] InvalidCertificateInvalidatesSignaturesArguments(
     EndCertificateUse use,
     X509ChainStatusFlags flags,
     SignatureDecision ingestionDecision,
     SignatureDecision gracePeriodDecision,
     SignatureDecision afterGracePeriodDecision)
 {
     return(new object[]
     {
         use,
         flags,
         ingestionDecision,
         gracePeriodDecision,
         afterGracePeriodDecision,
     });
 }
 public EndCertificateAndUse(HashedCertificate hashedCertificate, EndCertificateUse endCertificateUse)
 {
     Certificate = hashedCertificate ?? throw new ArgumentNullException(nameof(hashedCertificate));
     Use         = endCertificateUse;
 }
 public void HasExpectedValues(int expected, EndCertificateUse actual)
 {
     Assert.Equal((EndCertificateUse)expected, actual);
 }