Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -488,47 +488,7 @@ public void TestCreateOrUpdateFailedStatus()

}

/// <summary>
/// Test
/// </summary>
[Fact]
public void TestCreateOrUpdateErrorHandling()
{
var tokenCredentials = new TokenCredentials("123", "abc");
var handler = new PlaybackTestHandler(LROResponse.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);
}
}

/// <summary>
/// Test
/// </summary>
[Fact]
public void TestCreateOrUpdateNoErrorBody()
{
var tokenCredentials = new TokenCredentials("123", "abc");
var handler = new PlaybackTestHandler(LROResponse.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);
}
}



/// <summary>
Expand Down Expand Up @@ -573,28 +533,6 @@ public void TestDeleteWithLocationHeader()
Assert.Equal(2, handler.Requests.Count);
}

/// <summary>
/// Test
/// </summary>
[Fact]
public void TestDeleteWithLocationHeaderErrorHandling()
{
var tokenCredentials = new TokenCredentials("123", "abc");
var handler = new PlaybackTestHandler(LROResponse.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);
}
}

/// <summary>
/// Test
/// </summary>
Expand All @@ -610,66 +548,6 @@ public void TestDeleteWithLocationHeaderErrorHandlingSecondTime()
Assert.Equal("Long running operation failed with status 'InternalServerError'.", ex.Message);
}

/// <summary>
/// Test
/// </summary>
[Fact]
public void TestLROAsynOperationFailureWith200()
{
var tokenCredentials = new TokenCredentials("123", "abc");
var handler = new PlaybackTestHandler(LROResponse.MockLROAsyncOperationFailedWith200());
var fakeClient = new RedisManagementClient(tokenCredentials, handler);
fakeClient.LongRunningOperationInitialTimeout = fakeClient.LongRunningOperationRetryTimeout = 0;
try
{
var foo = fakeClient.RedisOperations.CreateOrUpdate("rg", "redis", new RedisCreateOrUpdateParameters(), "1234");
}
catch(Exception ex)
{
Assert.Contains("DeploymentDocument", ex.Message);
}
}

/// <summary>
/// Test
/// </summary>
[Fact]
public void TestLROWithLocationHeaderFailureWith200()
{
var tokenCredentials = new TokenCredentials("123", "abc");
var handler = new PlaybackTestHandler(LROResponse.MockLROLocationHeaderFailedWith200());
var fakeClient = new RedisManagementClient(tokenCredentials, handler);
fakeClient.LongRunningOperationInitialTimeout = fakeClient.LongRunningOperationRetryTimeout = 0;
try
{
var foo = fakeClient.RedisOperations.CreateOrUpdate("rg", "redis", new RedisCreateOrUpdateParameters(), "1234");
}
catch (Exception ex)
{
// If the message changes in the response, this assert will also have to be updated.
Assert.Contains("DeploymentDocument", ex.Message);
}
}

/// <summary>
/// Test
/// </summary>
[Fact]
public void TestLROPUTWithCanceledState()
{
var tokenCredentials = new TokenCredentials("123", "abc");
var handler = new PlaybackTestHandler(LROResponse.MockLROPUTWithCanceledStateResponse());
var fakeClient = new RedisManagementClient(tokenCredentials, handler);
fakeClient.LongRunningOperationInitialTimeout = fakeClient.LongRunningOperationRetryTimeout = 0;
try
{
var foo = fakeClient.RedisOperations.CreateOrUpdate("rg", "redis", new RedisCreateOrUpdateParameters(), "1234");
}
catch (Exception ex)
{
Assert.Contains("preempted", ex.Message);
}
}

/// <summary>
/// Test
Expand Down Expand Up @@ -876,20 +754,136 @@ public void TestPatchWithLocationHeader()
/// </summary>
public class LRO_FailedTests
{
/// <summary>
///
/// </summary>
[Fact /*(Skip = "Potential scenario that will have to be supported")*/]
public void TestLROAsynOperationFailureWith200()
{
var tokenCredentials = new TokenCredentials("123", "abc");
var handler = new PlaybackTestHandler(LROFailedResponses.MockLROAsyncOperationFailedOnlyStatus());
var fakeClient = new RedisManagementClient(tokenCredentials, handler);
fakeClient.LongRunningOperationInitialTimeout = fakeClient.LongRunningOperationRetryTimeout = 0;
Assert.Throws<CloudException>(() =>
{
try
{
fakeClient.RedisOperations.CreateOrUpdate("rg", "redis", new RedisCreateOrUpdateParameters(), "1234");
}
catch (Exception ex)
{
Assert.Contains("Unable to deserilize body", ex.Message);
throw ex;
}
});
}

/// <summary>
/// Test
/// </summary>
[Fact]
public void TestCreateOrUpdateErrorHandling()
{
var tokenCredentials = new TokenCredentials("123", "abc");
var handler = new PlaybackTestHandler(LROResponse.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);
}
}

/// <summary>
/// Test
/// </summary>
[Fact]
public void TestCreateOrUpdateNoErrorBody()
{
var tokenCredentials = new TokenCredentials("123", "abc");
var handler = new PlaybackTestHandler(LROResponse.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);
}
}

/// <summary>
/// Test
/// </summary>
[Fact]
public void TestDeleteWithLocationHeaderErrorHandling()
{
var tokenCredentials = new TokenCredentials("123", "abc");
var handler = new PlaybackTestHandler(LROResponse.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);
}
}

/// <summary>
/// Test
/// </summary>
[Fact]
public void TestLROWithLocationHeaderFailureWith200()
{
var tokenCredentials = new TokenCredentials("123", "abc");
var handler = new PlaybackTestHandler(LROResponse.MockLROLocationHeaderFailedWith200());
var fakeClient = new RedisManagementClient(tokenCredentials, handler);
fakeClient.LongRunningOperationInitialTimeout = fakeClient.LongRunningOperationRetryTimeout = 0;

Assert.Throws<CloudException>(() =>
{
try
{
fakeClient.RedisOperations.CreateOrUpdate("rg", "redis", new RedisCreateOrUpdateParameters(), "1234");
}
catch(Exception ex)
{
Assert.Contains("DeploymentDocument", ex.Message);
throw ex;
}
});
}

/// <summary>
/// Test
/// </summary>
[Fact]
public void TestLROPUTWithCanceledState()
{
var tokenCredentials = new TokenCredentials("123", "abc");
var handler = new PlaybackTestHandler(LROResponse.MockLROPUTWithCanceledStateResponse());
var fakeClient = new RedisManagementClient(tokenCredentials, handler);
fakeClient.LongRunningOperationInitialTimeout = fakeClient.LongRunningOperationRetryTimeout = 0;
try
{
var foo = fakeClient.RedisOperations.CreateOrUpdate("rg", "redis", new RedisCreateOrUpdateParameters(), "1234");
}
catch (Exception ex)
{
Assert.Contains("Unable to deserilize body", ex.Message);
Assert.Contains("preempted", ex.Message);
}
}
}
Expand Down Expand Up @@ -928,8 +922,5 @@ public void TestPUT_WithMultipleHeaders()
Assert.Equal(HttpMethod.Get, handler.Requests[3].Method);
Assert.Equal("https://management.azure.com/subscriptions/1234/resourceGroups/rg/providers/Microsoft.Cache/Redis/redis", handler.Requests[3].RequestUri.ToString());
}



}
}
Loading