Exemple #1
0
        public void Context_should_be_empty_if_execute_not_called_with_any_context_data()
        {
            Context capturedContext    = null;
            bool    onFallbackExecuted = false;

            Action fallbackAction = () => { };
            Action <Exception, Context> onFallback = (ex, ctx) => { onFallbackExecuted = true; capturedContext = ctx; };

            FallbackPolicy fallbackPolicy = Policy
                                            .Handle <ArgumentNullException>()
                                            .Or <DivideByZeroException>()
                                            .Fallback(fallbackAction, onFallback);

            fallbackPolicy.RaiseException <DivideByZeroException>();

            onFallbackExecuted.Should().BeTrue();
            capturedContext.Should().BeEmpty();
        }
Exemple #2
0
        public void Should_call_onFallback_passing_exception_triggering_fallback()
        {
            bool   fallbackActionExecuted = false;
            Action fallbackAction         = () => { fallbackActionExecuted = true; };

            Exception          exceptionPassedToOnFallback = null;
            Action <Exception> onFallback = ex => { exceptionPassedToOnFallback = ex; };

            FallbackPolicy fallbackPolicy = Policy
                                            .Handle <ArgumentNullException>()
                                            .Fallback(fallbackAction, onFallback);

            Exception instanceToThrow = new ArgumentNullException("myParam");

            fallbackPolicy.RaiseException(instanceToThrow);

            fallbackActionExecuted.Should().BeTrue();
            exceptionPassedToOnFallback.Should().BeOfType <ArgumentNullException>();
            exceptionPassedToOnFallback.Should().Be(instanceToThrow);
        }