Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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();
        }
Ejemplo n.º 3
0
        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();
        }