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(); }
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); }