static BoringValidationTestParameters Create(TestContext ctx, ValidationTestCategory category, BoringValidationTestType type) { var parameters = CreateParameters(category, type); switch (type) { case BoringValidationTestType.Simple: parameters.Add(CertificateResourceType.TlsTestXamDevNew); parameters.Add(CertificateResourceType.TlsTestXamDevCA); parameters.VerifyParamType = BoringVerifyParamType.None; parameters.AddTrustedRoots = true; parameters.ExpectSuccess = true; break; case BoringValidationTestType.SslClientParameters: parameters.Add(CertificateResourceType.TlsTestXamDevNew); parameters.Add(CertificateResourceType.TlsTestXamDevCA); parameters.VerifyParamType = BoringVerifyParamType.SslClient; parameters.AddTrustedRoots = true; parameters.ExpectSuccess = true; break; case BoringValidationTestType.NoTrustedRoots: parameters.Add(CertificateResourceType.TlsTestXamDevNew); parameters.Add(CertificateResourceType.TlsTestXamDevCA); parameters.AddTrustedRoots = false; parameters.ExpectedResult = BtlsX509Error.UNABLE_TO_GET_ISSUER_CERT_LOCALLY; break; case BoringValidationTestType.ExplicitTrustedRoot: parameters.Add(CertificateResourceType.ServerCertificateFromLocalCA); parameters.AddTrustedRoot(CertificateResourceType.HamillerTubeCA); parameters.ExpectSuccess = true; break; case BoringValidationTestType.BeforeExpirationDate: parameters.Add(CertificateResourceType.TlsTestXamDevExpired); parameters.Add(CertificateResourceType.TlsTestXamDevCA); parameters.VerifyParamType = BoringVerifyParamType.CopySslServer; parameters.CheckTime = new DateTime(2016, 3, 17); parameters.AddTrustedRoots = true; parameters.ExpectSuccess = true; break; case BoringValidationTestType.AfterExpirationDate: parameters.Add(CertificateResourceType.TlsTestXamDevExpired); parameters.Add(CertificateResourceType.TlsTestXamDevCA); parameters.VerifyParamType = BoringVerifyParamType.CopySslServer; parameters.CheckTime = new DateTime(2016, 4, 17); parameters.ExpectedResult = BtlsX509Error.CERT_HAS_EXPIRED; parameters.AddTrustedRoots = true; break; case BoringValidationTestType.WrongPurpose: parameters.Add(CertificateResourceType.ServerCertificateFromLocalCA); parameters.AddTrustedRoot(CertificateResourceType.HamillerTubeCA); parameters.VerifyParamType = BoringVerifyParamType.SslClient; parameters.ExpectedResult = BtlsX509Error.INVALID_PURPOSE; break; case BoringValidationTestType.CorrectHost: parameters.Add(CertificateResourceType.ServerCertificateFromLocalCA); parameters.AddTrustedRoot(CertificateResourceType.HamillerTubeCA); parameters.VerifyParamType = BoringVerifyParamType.CopySslServer; parameters.Host = "Hamiller-Tube.local"; parameters.ExpectSuccess = true; break; case BoringValidationTestType.IncorrectHost: parameters.Add(CertificateResourceType.ServerCertificateFromLocalCA); parameters.AddTrustedRoot(CertificateResourceType.HamillerTubeCA); parameters.VerifyParamType = BoringVerifyParamType.CopySslServer; parameters.Host = "Hamiller-TubeX.local"; parameters.ExpectedResult = BtlsX509Error.HOSTNAME_MISMATCH; break; case BoringValidationTestType.MissingIntermediateCert: parameters.Add(CertificateResourceType.IntermediateServer); parameters.AddTrustedRoot(CertificateResourceType.HamillerTubeCA); parameters.VerifyParamType = BoringVerifyParamType.CopySslServer; parameters.Host = "intermediate-server.local"; parameters.ExpectedResult = BtlsX509Error.UNABLE_TO_GET_ISSUER_CERT_LOCALLY; break; case BoringValidationTestType.IntermediateServer: parameters.Add(CertificateResourceType.IntermediateServer); parameters.Add(CertificateResourceType.IntermediateCA); parameters.AddTrustedRoot(CertificateResourceType.HamillerTubeCA); parameters.VerifyParamType = BoringVerifyParamType.CopySslServer; parameters.Host = "intermediate-server.local"; parameters.ExpectSuccess = true; break; case BoringValidationTestType.IntermediateServerChain: parameters.Add(CertificateResourceType.IntermediateServer); parameters.Add(CertificateResourceType.IntermediateCA); parameters.AddTrustedRoot(CertificateResourceType.HamillerTubeCA); parameters.AddExpectedChainEntry(CertificateResourceType.IntermediateServer); parameters.AddExpectedChainEntry(CertificateResourceType.IntermediateCA); parameters.AddExpectedChainEntry(CertificateResourceType.HamillerTubeCA); parameters.VerifyParamType = BoringVerifyParamType.CopySslServer; parameters.Host = "intermediate-server.local"; parameters.ExpectSuccess = true; break; case BoringValidationTestType.WrongChainOrder: parameters.Add(CertificateResourceType.IntermediateCA); parameters.Add(CertificateResourceType.IntermediateServer); parameters.AddTrustedRoot(CertificateResourceType.HamillerTubeCA); parameters.VerifyParamType = BoringVerifyParamType.CopySslServer; parameters.Host = "intermediate-server.local"; parameters.ExpectedResult = BtlsX509Error.INVALID_PURPOSE; break; case BoringValidationTestType.SelfSignedServer: parameters.Add(CertificateResourceType.SelfSignedServerCertificate); parameters.VerifyParamType = BoringVerifyParamType.CopySslServer; parameters.ExpectedResult = BtlsX509Error.DEPTH_ZERO_SELF_SIGNED_CERT; break; case BoringValidationTestType.MartinTest: parameters.Add(CertificateResourceType.TlsTestXamDevNew); parameters.Add(CertificateResourceType.TlsTestXamDevCA); parameters.AddTrustedRoots = true; parameters.ExpectSuccess = true; break; default: ctx.AssertFail("Unsupported validation type: '{0}'.", type); break; } return(parameters); }
public BoringValidationTestParametersAttribute(BoringValidationTestType type) : base(null, TestFlags.Browsable | TestFlags.ContinueOnError) { Type = type; }
static BoringValidationTestParameters CreateParameters(ValidationTestCategory category, BoringValidationTestType type, params object[] args) { var sb = new StringBuilder(); sb.Append(type); foreach (var arg in args) { sb.AppendFormat(":{0}", arg); } var name = sb.ToString(); return(new BoringValidationTestParameters(category, type, name)); }
public BoringValidationTestParameters(ValidationTestCategory category, BoringValidationTestType type, string identifier) : base(category, identifier) { Type = type; }