public void TestAsyncOperationWithEmptyPayload() { var tokenCredentials = new TokenCredentials("123", "abc"); var handler = new PlaybackTestHandler(MockAsyncOperaionWithEmptyBody()); var fakeClient = new RedisManagementClient(tokenCredentials, handler); fakeClient.LongRunningOperationInitialTimeout = fakeClient.LongRunningOperationRetryTimeout = 0; var error = Assert.Throws<CloudException>(() => fakeClient.RedisOperations.Delete("rg", "redis", "1234")); Assert.Equal("The response from long running operation does not contain a body.", error.Message); }
static void Main(string[] args) { //https://msdn.microsoft.com/en-us/library/azure/dn790557.aspx#bk_portal string token = GetAuthorizationHeader(); TokenCloudCredentials creds = new TokenCloudCredentials(subscriptionId,token); RedisManagementClient client = new RedisManagementClient(creds); var redisProperties = new RedisProperties(); redisProperties.Sku = new Sku(redisSKUName,redisSKUFamily,redisSKUCapacity); redisProperties.RedisVersion = redisVersion; var redisParams = new RedisCreateOrUpdateParameters(redisProperties, redisCacheRegion); client.Redis.CreateOrUpdate(resourceGroupName,cacheName, redisParams); }
public void TestCreateOrUpdateWithAsyncHeader() { var tokenCredentials = new TokenCredentials("123", "abc"); var handler = new PlaybackTestHandler(MockCreateOrUpdateWithTwoTries()); var fakeClient = new RedisManagementClient(tokenCredentials, handler); fakeClient.LongRunningOperationInitialTimeout = fakeClient.LongRunningOperationRetryTimeout = 0; fakeClient.RedisOperations.CreateOrUpdate("rg", "redis", new RedisCreateOrUpdateParameters(), "1234"); Assert.Equal(HttpMethod.Put, handler.Requests[0].Method); Assert.Equal("https://management.azure.com/subscriptions/1234/resourceGroups/rg/providers/Microsoft.Cache/Redis/redis", handler.Requests[0].RequestUri.ToString()); Assert.Equal(HttpMethod.Get, handler.Requests[1].Method); Assert.Equal("http://custom/status", handler.Requests[1].RequestUri.ToString()); Assert.Equal(HttpMethod.Get, handler.Requests[2].Method); Assert.Equal("https://management.azure.com/subscriptions/1234/resourceGroups/rg/providers/Microsoft.Cache/Redis/redis", handler.Requests[2].RequestUri.ToString()); }
public void TestDeleteWithRetryAfter() { var tokenCredentials = new TokenCredentials("123", "abc"); var handler = new PlaybackTestHandler(MockDeleteWithRetryAfterTwoTries()); var fakeClient = new RedisManagementClient(tokenCredentials, handler); var now = DateTime.Now; fakeClient.RedisOperations.Delete("rg", "redis", "1234"); Assert.True(DateTime.Now - now >= TimeSpan.FromSeconds(2)); }
public void TestDeleteWithLocationHeaderErrorHandlingSecondTime() { var tokenCredentials = new TokenCredentials("123", "abc"); var handler = new PlaybackTestHandler(MockDeleteWithLocationHeaderErrorInSecondCall()); var fakeClient = new RedisManagementClient(tokenCredentials, handler); fakeClient.LongRunningOperationInitialTimeout = fakeClient.LongRunningOperationRetryTimeout = 0; var ex = Assert.Throws<CloudException>(()=>fakeClient.RedisOperations.Delete("rg", "redis", "1234")); Assert.Equal("Long running operation failed with status 'InternalServerError'.", ex.Message); }
public void TestDeleteWithLocationHeaderErrorHandling() { var tokenCredentials = new TokenCredentials("123", "abc"); var handler = new PlaybackTestHandler(MockDeleteWithLocationHeaderError()); var fakeClient = new RedisManagementClient(tokenCredentials, handler); fakeClient.LongRunningOperationInitialTimeout = fakeClient.LongRunningOperationRetryTimeout = 0; try { fakeClient.RedisOperations.Delete("rg", "redis", "1234"); Assert.False(true, "Expected exception was not thrown."); } catch (CloudException ex) { Assert.Null(ex.Body); } }
public void TestCreateOrUpdateNoErrorBody() { var tokenCredentials = new TokenCredentials("123", "abc"); var handler = new PlaybackTestHandler(MockCreateOrUpdateWithNoErrorBody()); var fakeClient = new RedisManagementClient(tokenCredentials, handler); fakeClient.LongRunningOperationInitialTimeout = fakeClient.LongRunningOperationRetryTimeout = 0; try { fakeClient.RedisOperations.CreateOrUpdate("rg", "redis", new RedisCreateOrUpdateParameters(), "1234"); Assert.False(true, "Expected exception was not thrown."); } catch (CloudException ex) { Assert.Equal(HttpStatusCode.InternalServerError, ex.Response.StatusCode); } }
public void TestCreateOrUpdateErrorHandling() { var tokenCredentials = new TokenCredentials("123", "abc"); var handler = new PlaybackTestHandler(MockCreateOrUpdateWithImmediateServerError()); var fakeClient = new RedisManagementClient(tokenCredentials, handler); fakeClient.LongRunningOperationInitialTimeout = fakeClient.LongRunningOperationRetryTimeout = 0; try { fakeClient.RedisOperations.CreateOrUpdate("rg", "redis", new RedisCreateOrUpdateParameters(), "1234"); Assert.False(true, "Expected exception was not thrown."); } catch(CloudException ex) { Assert.Equal("The provided database ‘foo’ has an invalid username.", ex.Message); } }
public void TestCreateOrUpdateFailedStatus() { var tokenCredentials = new TokenCredentials("123", "abc"); var handler = new PlaybackTestHandler(MockCreateOrUpdateWithFailedStatus()); var fakeClient = new RedisManagementClient(tokenCredentials, handler); fakeClient.LongRunningOperationInitialTimeout = fakeClient.LongRunningOperationRetryTimeout = 0; try { fakeClient.RedisOperations.CreateOrUpdate("rg", "redis", new RedisCreateOrUpdateParameters(), "1234"); Assert.False(true, "Expected exception was not thrown."); } catch (CloudException ex) { Assert.Equal("Long running operation failed with status 'Failed'.", ex.Message); Assert.Contains(AzureAsyncOperation.FailedStatus, ex.Response.Content); } }
public void TestPutOperationWithNonResource() { var tokenCredentials = new TokenCloudCredentials("123", "abc"); var handler = new PlaybackTestHandler(MockPutOperaionWitNonResource()); var fakeClient = new RedisManagementClient(tokenCredentials, handler); fakeClient.LongRunningOperationInitialTimeout = fakeClient.LongRunningOperationRetryTimeout = 0; Sku sku = fakeClient.RedisOperations.CreateOrUpdateNonResource("rg", "redis", new RedisCreateOrUpdateParameters(), "1234"); Assert.Equal("foo", sku.Name); Assert.Equal(3, handler.Requests.Count); }
public void TestDeleteOperationWithoutLocationHeaderInResponse() { var tokenCredentials = new TokenCredentials("123", "abc"); var handler = new PlaybackTestHandler(MockDeleteOperaionWithoutLocationHeaderInResponse()); var fakeClient = new RedisManagementClient(tokenCredentials, handler); fakeClient.LongRunningOperationInitialTimeout = fakeClient.LongRunningOperationRetryTimeout = 0; fakeClient.RedisOperations.Delete("rg", "redis", "1234"); Assert.Equal(3, handler.Requests.Count); Assert.Equal("http://custom/status", handler.Requests[1].RequestUri.ToString()); Assert.Equal("http://custom/status", handler.Requests[2].RequestUri.ToString()); }
public void TestDeleteOperationWithNonRetryableErrorInResponse() { var tokenCredentials = new TokenCredentials("123", "abc"); var handler = new PlaybackTestHandler(MockDeleteOperaionWithNoRetryableErrorInResponse()); var fakeClient = new RedisManagementClient(tokenCredentials, handler); fakeClient.LongRunningOperationInitialTimeout = fakeClient.LongRunningOperationRetryTimeout = 0; var error = Assert.Throws<CloudException>(() => fakeClient.RedisOperations.Delete("rg", "redis", "1234")); Assert.Equal("Long running operation failed with status 'BadRequest'.", error.Message); Assert.Equal(2, handler.Requests.Count); }
public void TestPostOperationWithImmediateSuccessAndNoContentStatus() { var tokenCredentials = new TokenCredentials("123", "abc"); var handler = new PlaybackTestHandler(MockOperaionWithImmediateSuccessNoContentStatus()); var fakeClient = new RedisManagementClient(tokenCredentials, handler); fakeClient.LongRunningOperationInitialTimeout = fakeClient.LongRunningOperationRetryTimeout = 0; fakeClient.RedisOperations.Post("rg", "redis", "1234"); Assert.Equal(1, handler.Requests.Count); }
public void TestPutOperationWithImmediateSuccess() { var tokenCredentials = new TokenCredentials("123", "abc"); var handler = new PlaybackTestHandler(MockPutOperaionWithImmediateSuccess()); var fakeClient = new RedisManagementClient(tokenCredentials, handler); fakeClient.LongRunningOperationInitialTimeout = fakeClient.LongRunningOperationRetryTimeout = 0; fakeClient.RedisOperations.CreateOrUpdate("rg", "redis", new RedisCreateOrUpdateParameters(), "1234"); Assert.Equal(1, handler.Requests.Count); }
public void TestAsyncOperationWithNonSuccessStatusAndInvalidResponseContent() { var tokenCredentials = new TokenCredentials("123", "abc"); var handler = new PlaybackTestHandler(MockAsyncOperaionWithNonSuccessStatusAndInvalidResponseContent()); var fakeClient = new RedisManagementClient(tokenCredentials, handler); fakeClient.LongRunningOperationInitialTimeout = fakeClient.LongRunningOperationRetryTimeout = 0; var error = Assert.Throws<CloudException>(() => fakeClient.RedisOperations.Delete("rg", "redis", "1234")); Assert.Equal("Long running operation failed with status 'BadRequest'.", error.Message); Assert.Null(error.Body); }
public RedisCacheClient(AzureContext context) { _client = AzureSession.ClientFactory.CreateClient<RedisManagementClient>(context, AzureEnvironment.Endpoint.ResourceManager); }
public void TestAsyncOperationWithMissingProvisioningState() { var tokenCredentials = new TokenCredentials("123", "abc"); var handler = new PlaybackTestHandler(MockAsyncOperaionWithMissingProvisioningState()); var fakeClient = new RedisManagementClient(tokenCredentials, handler); fakeClient.LongRunningOperationInitialTimeout = fakeClient.LongRunningOperationRetryTimeout = 0; var resource = fakeClient.RedisOperations.CreateOrUpdate("rg", "redis", new RedisCreateOrUpdateParameters(), "1234"); Assert.Equal("100", resource.Id); }
public void TestPostWithResponse() { var tokenCredentials = new TokenCredentials("123", "abc"); var handler = new PlaybackTestHandler(MockPostWithResourceSku()); var fakeClient = new RedisManagementClient(tokenCredentials, handler); fakeClient.LongRunningOperationInitialTimeout = fakeClient.LongRunningOperationRetryTimeout = 0; var resource = fakeClient.RedisOperations.Post("rg", "redis", "1234"); Assert.Equal(2, handler.Requests.Count); Assert.Equal(HttpMethod.Post, handler.Requests[0].Method); Assert.Equal("https://management.azure.com/subscriptions/1234/resourceGroups/rg/providers/Microsoft.Cache/Redis/redis", handler.Requests[0].RequestUri.ToString()); Assert.Equal(HttpMethod.Get, handler.Requests[1].Method); Assert.Equal("http://custom/status", handler.Requests[1].RequestUri.ToString()); Assert.Equal("Family", resource.Family); }