public void InvokeSuccess() { var instance = new RetryProxySubject(); var retryTest = new CanRetryProxySubjectException(); var retryOptions = new RetryOptions(5, TimeSpan.FromSeconds(5)); var retryProxy = RetryProxy.Create <IRetryProxySubject>(instance, retryOptions, retryTest); var result = retryProxy.Succeed(); Assert.AreEqual("succeed", result); }
public void Create_OptionsNull() { var instance = new RetryProxySubject(); var options = new RetryOptions(5, TimeSpan.FromSeconds(5)); var canRetryTester = new CanRetryProxySubjectException(); try { var retryProxy = RetryProxy.Create <IRetryProxySubject>(instance, null, canRetryTester); } catch (ArgumentNullException ex) { Assert.AreEqual(nameof(options), ex.ParamName); throw; } }
public void InvokeFailure_RetryForbidden() { var instance = new RetryProxySubject(); var retryTest = new CanNotRetryProxySubjectException(); var retryOptions = new RetryOptions(5, TimeSpan.FromSeconds(5)); var retryProxy = RetryProxy.Create <IRetryProxySubject>(instance, retryOptions, retryTest); try { var result = retryProxy.Fail(); } catch (RetryException ex) { Assert.IsTrue(ex.InnerException is ProxySubjectTestException); Assert.AreEqual(1, ex.Attempts); Assert.AreEqual(ex.Attempts, ex.Exceptions.Count); throw; } }