in DeviceBridgeTests/Providers/SecretsProviderTests.cs [97:139]
public async Task GetEncryptionKeyVersionsTest()
{
// Test to make sure GetEncryptionKeyVersions gets all pages
using (ShimsContext.Create())
{
Microsoft.Azure.KeyVault.Models.Fakes.ShimSecretItem.AllInstances.IdentifierGet = (@this) => new SecretIdentifier(TestConstants.KeyvaultUrl, "name", "version" + new Random().Next());
Microsoft.Azure.KeyVault.Fakes.ShimKeyVaultClientExtensions.GetSecretAsyncIKeyVaultClientStringStringStringCancellationToken = (IKeyVaultClient kvc, string keyVaultUrl, string secretName, string version, CancellationToken c) =>
{
var result = new SecretBundle();
return Task.FromResult(result);
};
Microsoft.Azure.KeyVault.Fakes.ShimKeyVaultClientExtensions.GetSecretVersionsAsyncIKeyVaultClientStringStringNullableOfInt32CancellationToken = (IKeyVaultClient kvc, string kvUrl, string secret, int? maxResults, CancellationToken token) =>
{
var secretItem = new SecretItem();
var page = new PageWithNextPageLinkSetter<SecretItem>(new List<SecretItem>() { secretItem }.GetEnumerator());
page.NextPageLink = "test";
return Task.FromResult<IPage<SecretItem>>(page);
};
// Check to make sure that while there is a next page link, GetSecretsNext is called.
var nextCount = 2;
Microsoft.Azure.KeyVault.Fakes.ShimKeyVaultClientExtensions.GetSecretVersionsNextAsyncIKeyVaultClientStringCancellationToken = (IKeyVaultClient kvc, string nextUrl, CancellationToken token) =>
{
var secretItem = new SecretItem();
var page = new PageWithNextPageLinkSetter<SecretItem>(new List<SecretItem>() { secretItem }.GetEnumerator());
nextCount--;
if (nextCount != 0)
{
page.NextPageLink = "test";
}
return Task.FromResult<IPage<SecretItem>>(page);
};
var versions = await sp.GetEncryptionKeyVersions(logger);
Assert.AreEqual(0, nextCount);
Assert.AreEqual(3, versions.Count);
}
}