public async Task StoreSecret_WithoutSecretValue_Fails() { // Arrange var stubProvider = new SpyKeyVaultSecretProvider(Mock.Of <TokenCredential>(), new KeyVaultConfiguration("https://some-key.vault.azure.net")); var cachedProvider = new KeyVaultCachedSecretProvider(stubProvider); // Act / Assert await Assert.ThrowsAnyAsync <ArgumentException>( () => cachedProvider.StoreSecretAsync(secretName: "SomeKey", secretValue: null)); }
public async Task StoreSecret_UsesCache_WhenWithinCacheInterval() { // Arrange string secretName = $"MySecret-{Guid.NewGuid()}"; string secretValue1 = $"secret-{Guid.NewGuid()}"; string secretValue2 = $"secret-{Guid.NewGuid()}"; var spyProvider = new SpyKeyVaultSecretProvider(Mock.Of <TokenCredential>(), new KeyVaultConfiguration("https://some-key.vault.azure.net")); var cachedProvider = new KeyVaultCachedSecretProvider(spyProvider); await cachedProvider.StoreSecretAsync(secretName, secretValue1); // Act await cachedProvider.StoreSecretAsync(secretName, secretValue2); // Assert string actual = await cachedProvider.GetRawSecretAsync(secretName); Assert.Equal(secretValue2, actual); Assert.Equal(2, spyProvider.StoreSecretCalls); Assert.Equal(0, spyProvider.GetRawSecretCalls); }