public async Task GetsFromCache()
{
Mock<IKeyVault> keyVault = new Mock<IKeyVault>();
Mock<IKeyVaultConfigurationKeyEncoder> keyVaultEncoder = new Mock<IKeyVaultConfigurationKeyEncoder>();
Mock<IAsyncConfiguration> asyncConfiguration = new Mock<IAsyncConfiguration>();
keyVaultEncoder.Setup(x => x.Encode("mykey")).Returns("mykey");
asyncConfiguration.Setup(x => x.GetAsync("mykey")).ReturnsAsync("incache");
AsyncKeyVaultConfiguration asyncKeyVaultConfiguration = new AsyncKeyVaultConfiguration(keyVault.Object, keyVaultEncoder.Object, KeyVaultConfigurationCachePolicy.Default, asyncConfiguration.Object);
await asyncKeyVaultConfiguration.GetAsync("mykey");
string result = await asyncKeyVaultConfiguration.GetAsync("mykey");
Assert.AreEqual("incache", result);
asyncConfiguration.Verify(x => x.GetAsync("mykey"), Times.AtMostOnce);
}