예제 #1
0
        public void InvokeFailure_RetryForbidden()
        {
            var instance    = new RetryProxySubject();
            var retryPolicy = new CanNotRetryProxySubjectPolicy(5, TimeSpan.FromMinutes(15));
            var retryProxy  = RetryProxy.Create <IRetryProxySubject>(instance, retryPolicy);

            try
            {
                var result = retryProxy.Fail();
            }
            catch (RetryException ex)
            {
                Assert.IsTrue(ex.InnerException is ProxySubjectTestException);
                Assert.AreEqual(1, ex.RetrySession.Attempts);
                Assert.AreEqual(ex.RetrySession.Attempts, ex.RetrySession.Exceptions.Count);
                throw;
            }
        }
예제 #2
0
        public async Task InvokeFailure_RetryForbiddenAsync()
        {
            var instance    = new RetryProxySubject();
            var retryPolicy = new CanNotRetryProxySubjectPolicy(5, TimeSpan.FromSeconds(5));
            var retryProxy  = RetryProxy.Create <IRetryProxySubject>(instance, retryPolicy);

            //Assert.ThrowsException<RetryNotAllowedException>()
            try
            {
                var result = await retryProxy.FailAsync();
            }
            catch (RetryException ex)
            {
                Assert.IsTrue(ex.InnerException is ProxySubjectTestException);
                Assert.AreEqual(1, ex.RetrySession.Attempts);
                Assert.AreEqual(ex.RetrySession.Attempts, ex.RetrySession.Exceptions.Count);
                throw;
            }
        }