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);
 }
        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 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 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 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);
        }
 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);
 }
예제 #16
0
 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);
 }