in DeviceBridgeTests/Providers/SecretsProviderTests.cs [142:173]
public async Task GetApiKeyTest()
{
using (ShimsContext.Create())
{
var realSecretValue = "realSecretValue";
var calledKvUrl = string.Empty;
var calledSecretName = string.Empty;
Microsoft.Azure.KeyVault.Fakes.ShimKeyVaultClientExtensions.GetSecretAsyncIKeyVaultClientStringStringCancellationToken = (IKeyVaultClient kvc, string keyVaultUrl, string secretName, CancellationToken c) =>
{
var result = new SecretBundle();
result.Value = realSecretValue;
calledKvUrl = keyVaultUrl;
calledSecretName = secretName;
return Task.FromResult(result);
};
// First time should call keyvault
var returnVal = await sp.GetApiKey(logger);
Assert.AreEqual(realSecretValue, returnVal);
Assert.AreEqual(TestConstants.KeyvaultUrl, calledKvUrl);
Assert.AreEqual(SecretsProvider.ApiKeyName, calledSecretName);
// Second time should cache
calledKvUrl = string.Empty;
calledSecretName = string.Empty;
returnVal = await sp.GetApiKey(logger);
Assert.AreEqual(realSecretValue, returnVal);
Assert.AreEqual("", calledKvUrl);
Assert.AreEqual("", calledSecretName);
}
}