public async Task GetCertificateLooksForDomainsAsync() { const string Domain1 = "github.com"; const string Domain2 = "azure.com"; var secretClient = new Mock <SecretClient>(); var secretClientFactory = new Mock <ISecretClientFactory>(); secretClientFactory.Setup(c => c.Create()).Returns(secretClient.Object); var options = Options.Create(new LettuceEncryptOptions()); options.Value.DomainNames = new[] { Domain1, Domain2 }; var repository = new AzureKeyVaultCertificateRepository( Mock.Of <ICertificateClientFactory>(), secretClientFactory.Object, options, NullLogger <AzureKeyVaultCertificateRepository> .Instance); var certificates = await repository.GetCertificatesAsync(CancellationToken.None); Assert.Empty(certificates); secretClient.Verify(t => t.GetSecretAsync(AzureKeyVaultCertificateRepository.NormalizeHostName(Domain1), null, CancellationToken.None)); secretClient.Verify(t => t.GetSecretAsync(AzureKeyVaultCertificateRepository.NormalizeHostName(Domain2), null, CancellationToken.None)); }
public async Task ImportCertificateChecksDuplicate() { const string Domain1 = "github.com"; const string Domain2 = "azure.com"; var certClient = new Mock <CertificateClient>(); var certClientFactory = new Mock <ICertificateClientFactory>(); certClientFactory.Setup(c => c.Create()).Returns(certClient.Object); var options = Options.Create(new LettuceEncryptOptions()); options.Value.DomainNames = new[] { Domain1, Domain2 }; var repository = new AzureKeyVaultCertificateRepository( certClientFactory.Object, Mock.Of <ISecretClientFactory>(), options, NullLogger <AzureKeyVaultCertificateRepository> .Instance); foreach (var domain in options.Value.DomainNames) { var certificateToSave = TestUtils.CreateTestCert(domain); await repository.SaveAsync(certificateToSave, CancellationToken.None); } certClient.Verify(t => t.GetCertificateAsync(AzureKeyVaultCertificateRepository.NormalizeHostName(Domain1), CancellationToken.None)); certClient.Verify(t => t.GetCertificateAsync(AzureKeyVaultCertificateRepository.NormalizeHostName(Domain2), CancellationToken.None)); }
public async Task GetCertificateLooksForDomainsAsync() { const string Domain1 = "https://github.com"; const string Domain2 = "https://azure.com"; var client = new Mock <CertificateClient>(); var logger = new Mock <ILogger <AzureKeyVaultCertificateRepository> >(); var options = new Mock <IOptions <LetsEncryptOptions> >(); options.Setup(o => o.Value).Returns(new LetsEncryptOptions { DomainNames = new[] { Domain1, Domain2 } }); var repository = new AzureKeyVaultCertificateRepository(client.Object, options.Object, logger.Object); var certificates = await repository.GetCertificatesAsync(CancellationToken.None); Assert.Empty(certificates); client.Verify(t => t.GetCertificateAsync(AzureKeyVaultCertificateRepository.NormalizeHostName(Domain1), CancellationToken.None)); client.Verify(t => t.GetCertificateAsync(AzureKeyVaultCertificateRepository.NormalizeHostName(Domain2), CancellationToken.None)); }