public void WithDelayFactory_should_add_handler() { var sut = new RetryPolicyBuilder(); var handler = new DelayFactory(i => TimeSpan.Zero); sut.WithDelay(handler); sut.DelayFactory.Should().Be(handler); }
public async Task WrapAsync_should_run_delay_factory_on_exception() { var filters = new ExceptionFilters(Enumerable.Empty <ExceptionFilter>()); var hit = false; DelayFactory delayFactory = i => { hit = true; return(TimeSpan.Zero); }; var sut = new RetryPolicy(1, filters, delayFactory); await Assert.ThrowsAsync <ApplicationException>(async() => await sut.WrapAsync(() => { throw new ApplicationException(); })); hit.Should().BeTrue(); }
public async Task WrapAsync_should_run_OnException_handler() { var filters = new ExceptionFilters(Enumerable.Empty <ExceptionFilter>()); DelayFactory delayFactory = i => TimeSpan.Zero; var hit = false; OnExceptionHandler onException = ctx => { hit = true; return(Task.CompletedTask); }; var sut = new RetryPolicy(1, filters, delayFactory, onException); await Assert.ThrowsAsync <ApplicationException>(async() => await sut.WrapAsync(() => { throw new ApplicationException(); })); hit.Should().BeTrue(); }