public void GetRules_default_ones_and_injected() { //ARRANGE CertificateValidationRulesFactory.InstanceCreator = ValidationRuleInstanceCreatorMock.CreateInstance; var configuration = new CertificateValidationConfiguration { X509CertificateValidationMode = System.ServiceModel.Security.X509CertificateValidationMode.Custom }; var rule1 = typeof(CertificateValidationRuleMock1).AssemblyQualifiedName; var rule2 = typeof(CertificateValidationRuleMock).AssemblyQualifiedName; var rule3 = typeof(CertificateValidationRuleFailedMock).AssemblyQualifiedName; var ruleDescriptor = new ValidationRuleDescriptor(rule1); var ruleDescriptor2 = new ValidationRuleDescriptor(rule2); var ruleDescriptor3 = new ValidationRuleDescriptor(rule3); configuration.ValidationRules.Add(ruleDescriptor); configuration.ValidationRules.Add(ruleDescriptor2); configuration.ValidationRules.Add(ruleDescriptor3); //ACT var rules = CertificateValidationRulesFactory.GetRules(configuration) .ToList(); //ASSERT Assert.AreEqual(5, rules.Count); Assert.IsTrue(rules.Any(x => x.GetType() == typeof(EffectiveDateRule))); Assert.IsTrue(rules.Any(x => x.GetType() == typeof(ExpirationDateRule))); Assert.IsTrue(rules.Any(x => x.GetType() == typeof(CertificateValidationRuleMock1))); Assert.IsTrue(rules.Any(x => x.GetType() == typeof(CertificateValidationRuleMock))); Assert.IsTrue(rules.Any(x => x.GetType() == typeof(CertificateValidationRuleFailedMock))); }
public void MetadataSerialisationCertificateTest_failed() { //ARRANGE var store = new X509Store("TestCertStore"); try { store.Open(OpenFlags.ReadOnly); var certificate = store.Certificates.Find(X509FindType.FindBySubjectName, "ApiraTestCertificate", false)[0]; var configuration = new CertificateValidationConfiguration { UsePinningValidation = false, X509CertificateValidationMode = System.ServiceModel.Security.X509CertificateValidationMode.Custom }; var rule1 = typeof(CertificateValidationRuleMock1).AssemblyQualifiedName; var rule2 = typeof(CertificateValidationRuleFailedMock).AssemblyQualifiedName; var ruleDescriptor = new ValidationRuleDescriptor(rule1); var ruleDescriptor2 = new ValidationRuleDescriptor(rule2); configuration.ValidationRules.Add(ruleDescriptor); configuration.ValidationRules.Add(ruleDescriptor2); configuration.ValidationRules.Add(new ValidationRuleDescriptor(rule1)); var configurationProvider = new CertificateValidationConfigurationProvider(() => configuration); var validator = new CertificateValidator(configurationProvider); //ACT //ASSERT Assert.Throws <InvalidOperationException>(() => validator.Validate(certificate)); } finally { store.Close(); store.Dispose(); } }
public void MetadataSerialisationCertificateTest_success() { //ARRANGE var logger = new LogProviderMock(); var store = new X509Store("TestCertStore"); try { store.Open(OpenFlags.ReadOnly); var certificate = store.Certificates.Find(X509FindType.FindBySubjectName, "www.eca-international.com", false)[0]; var configuration = new CertificateValidationConfiguration { X509CertificateValidationMode = System.ServiceModel.Security.X509CertificateValidationMode.Custom }; var rule1 = typeof(CertificateValidationRuleMock1).AssemblyQualifiedName; var rule2 = typeof(CertificateValidationRuleMock).AssemblyQualifiedName; var ruleDescriptor = new ValidationRuleDescriptor(rule1); var ruleDescriptor2 = new ValidationRuleDescriptor(rule2); configuration.ValidationRules.Add(ruleDescriptor); configuration.ValidationRules.Add(ruleDescriptor2); configuration.ValidationRules.Add(new ValidationRuleDescriptor(rule1)); var configurationProvider = new CertificateValidationConfigurationProvider(() => configuration); var validator = new CertificateValidator(configurationProvider, logger); //ACT validator.Validate(certificate); //ASSERT } finally { store.Close(); store.Dispose(); } }