I am trying to mock the functionality of the EncryptAsync method in Azure.Security.KeyVault.Keys.Cryptography.CryptographyClient.
This is the method I am trying to cover in my unit test.
public KeyVaultClientWrapper(KeyClient keyClient, SecretClient secretClient, CryptographyClient cryptographyClient)
{
_keyClient = keyClient;
_cryptographyClient = cryptographyClient;
_secretClient = secretClient;
}
public async Task<EncryptResult> EncryptAsync(string keyName, string algorithm, byte[] plainText, CancellationToken cancellationToken = default)
{
return await _cryptographyClient.EncryptAsync(algorithm, plainText, cancellationToken);
}
I'm unable to create new object of EncryptResult that needs to returned from the mock EncryptAsync method because there is no Set for EncryptResult
var _mockKeyVaultClient = new Mock<IKeyVaultClient>();
var _mockCryptoClient = new Mock<CryptographyClient>();
mockCryptoClient
.Setup(client => client.EncryptAsync(EncryptionAlgorithm.AES, plaintext, default))
.ReturnsAsync(new EncryptResult { Ciphertext = ciphertext });
How can I change this mock class so that EncryptAsync returns a valid EncryptResult object while running the test method?
Is there any alternate option for testing the same?
.NETCore
Top comments (0)