DarabonbaUnitTests/Exceptions/TeaUnretryableExceptionTest.cs (61 lines of code) (raw):
using Darabonba;
using Darabonba.Exceptions;
using Darabonba.RetryPolicy;
using Tea;
using Xunit;
namespace DaraUnitTests.Exceptions
{
public class TeaUnretryableExceptionTest
{
[Fact]
public void TestDaraUnRetryableException()
{
var retryPolicyContext = new RetryPolicyContext
{
Request = new Request(),
Exception = new DaraException
{
Message = "Exception"
}
};
try
{
throw new DaraUnRetryableException(retryPolicyContext);
}
catch (TeaUnretryableException e)
{
Assert.NotNull(e);
Assert.NotNull(e.InnerException);
Assert.Equal(" Retry failed : Exception", e.Message);
Assert.NotNull(e.LastRequest);
Assert.True(e.LastRequest != null);
}
try
{
throw new TestUnRetryableException
{
TestCode = "200"
};
}
catch (TestUnRetryableException e)
{
Assert.NotNull(e);
Assert.Null(e.InnerException);
Assert.Equal("200", e.TestCode);
}
try
{
throw new DaraRetryableException();
}
catch (DaraRetryableException e)
{
Assert.NotNull(e);
Assert.Equal("Exception of type 'Darabonba.Exceptions.DaraRetryableException' was thrown.", e.Message);
}
}
}
}
internal class TestUnRetryableException : DaraUnRetryableException
{
public string TestCode { get; set; }
}