public CertificateProvider( LetsEncryptOptions options, ICertificateValidator certificateValidator, IPersistenceService persistenceService, ILetsEncryptClientFactory clientFactory, ILogger <CertificateProvider> logger) { var domains = options.Domains?.Distinct().ToArray(); if (domains == null || domains.Length == 0) { throw new ArgumentException("Domains configuration invalid"); } _domains = domains; _persistenceService = persistenceService; _clientFactory = clientFactory; _certificateValidator = certificateValidator; _logger = logger; }
public void Initialize() { var persistenceService = Substitute.For <IPersistenceService>(); var options = new LetsEncryptOptions { Domains = new[] { "test.com" }, Email = "*****@*****.**", KeyAlgorithm = KeyAlgorithm.ES512, UseStaging = true, }; var certificateValidator = Substitute.For <ICertificateValidator>(); certificateValidator.IsCertificateValid(null).Returns(false); certificateValidator.IsCertificateValid(RefEq(InvalidCert)).Returns(false); certificateValidator.IsCertificateValid(RefEq(ValidCert)).Returns(true); var client = Substitute.For <ILetsEncryptClient>(); var factory = Substitute.For <ILetsEncryptClientFactory>(); factory.GetClient().Returns(Task.FromResult(client)); var sut = new CertificateProvider( options, certificateValidator, persistenceService, factory, NullLogger <CertificateProvider> .Instance); PersistenceService = persistenceService; CertificateValidator = certificateValidator; LetsEncryptClientFactory = factory; LetsEncryptClient = client; Sut = sut; }