Ejemplo n.º 1
0
        public void Should_be_able_to_construct_reactive_policy()
        {
            Action construct = () =>
            {
                AddBehaviourIfHandlePolicy <ResultPrimitive> policy = Policy.HandleResult <ResultPrimitive>(ResultPrimitive.Fault).WithBehaviour(outcome => Console.WriteLine("Handling " + outcome.Result));
            };

            construct.Should().NotThrow();
        }
Ejemplo n.º 2
0
        public void Should_be_able_to_construct_reactive_policy()
        {
            Action construct = () =>
            {
                AddBehaviourIfHandlePolicy policy = Policy.Handle <Exception>().WithBehaviour(ex => Console.WriteLine("Handling " + ex.Message));
            };

            construct.ShouldNotThrow();
        }
Ejemplo n.º 3
0
        public void Reactive_policy_should_be_able_to_ignore_unhandled_exception()
        {
            Exception handled = null;
            AddBehaviourIfHandlePolicy policy = Policy.Handle <InvalidOperationException>().WithBehaviour(ex => handled = ex);

            Exception toThrow  = new NotImplementedException();
            bool      executed = false;

            policy.Invoking(x => x.Execute(() => {
                executed = true;
                throw toThrow;
            }))
            .ShouldThrow <Exception>().Which.Should().Be(toThrow);

            executed.Should().BeTrue();
            handled.Should().Be(null);
        }
Ejemplo n.º 4
0
        public void Reactive_policy_should_be_able_to_ignore_unhandled_result()
        {
            ResultPrimitive?handled = null;
            AddBehaviourIfHandlePolicy <ResultPrimitive> policy = Policy.HandleResult <ResultPrimitive>(ResultPrimitive.Fault).WithBehaviour(outcome => handled = outcome.Result);

            ResultPrimitive toReturn = ResultPrimitive.FaultYetAgain;
            bool            executed = false;

            policy.Execute(() =>
            {
                executed = true;
                return(toReturn);
            })
            .Should().Be(toReturn);

            executed.Should().BeTrue();
            handled.Should().Be(null);
        }
Ejemplo n.º 5
0
        public void Reactive_policy_should_handle_result()
        {
            ResultPrimitive handled = ResultPrimitive.Undefined;
            AddBehaviourIfHandlePolicy <ResultPrimitive> policy = Policy.HandleResult <ResultPrimitive>(ResultPrimitive.Fault).WithBehaviour(outcome => handled = outcome.Result);

            ResultPrimitive toReturn = ResultPrimitive.Fault;
            bool            executed = false;

            policy.Execute(() =>
            {
                executed = true;
                return(toReturn);
            })
            .Should().Be(toReturn);

            executed.Should().BeTrue();
            handled.Should().Be(toReturn);
        }