NOTE: Samples in this file apply only to packages that follow Azure SDK Design Guidelines. Names of such packages usually start with Azure
.
You can use a combination of model factory and Mock
class to create a mock of a client:
// Create a mock response
var mockResponse = new Mock<Response>();
// Create a mock value
var mockValue = SecretModelFactory.KeyVaultSecret(
SecretModelFactory.SecretProperties(new Uri("http://example.com"))
);
// Create a client mock
var mock = new Mock<SecretClient>();
// Setup client method
mock.Setup(c => c.GetSecret("Name", null, default))
.Returns(Response.FromValue(mockValue, mockResponse.Object));
// Use the client mock
SecretClient client = mock.Object;
KeyVaultSecret secret = client.GetSecret("Name");
For methods that return instances of Pageable
or AsyncPageable
, [Async]Pageable<T>.FromPages
method can be used to create an instance for test:
// Create a client mock
var mock = new Mock<SecretClient>();
// Create a Page
var deletedValue = SecretModelFactory.DeletedSecret(
SecretModelFactory.SecretProperties(new Uri("http://example.com"))
);
var pageValues = new[] { deletedValue };
var page = Page<DeletedSecret>.FromValues(pageValues, default, new Mock<Response>().Object);
// Create a mock for the Pageable
var pageable = Pageable<DeletedSecret>.FromPages(new[] { page });
// Setup client method that returns Pageable
mock.Setup(c => c.GetDeletedSecrets(default))
.Returns(pageable);
// Use the client mock
SecretClient client = mock.Object;
DeletedSecret deletedSecret = client.GetDeletedSecrets().First();