Ejemplo n.º 1
0
        public void determine_the_saga_state_type_with_multiple_levels_of_abstraction()
        {
            var chain = HandlerChain.For <DoubleInherited>(x => x.Handle(null));

            SagaFramePolicy.DetermineSagaStateType(chain)
            .ShouldBe(typeof(FooState));
        }
        public void apply_attribute_on_class()
        {
            var chain = HandlerChain.For <FakeHandler2>(x => x.Handle(null));
            var model = chain.ToClass(theRules);

            model.Methods.Single().Top.AllFrames().OfType <FakeFrame>().Count().ShouldBe(1);
        }
Ejemplo n.º 3
0
        public void determine_the_saga_state_type()
        {
            var chain = HandlerChain.For <FooSaga>(x => x.Handle(null));

            SagaFramePolicy.DetermineSagaStateType(chain)
            .ShouldBe(typeof(FooState));
        }
Ejemplo n.º 4
0
        public void apply_attribute_on_class()
        {
            var chain = HandlerChain.For <FakeHandler2>(x => x.Handle(null));
            var model = chain.ToGenerationModel(theConfig);

            model.Top.AllFrames().OfType <FakeFrame>().Count().ShouldBe(1);
        }
Ejemplo n.º 5
0
        public void apply_generic_middleware()
        {
            var chain  = HandlerChain.For <Target>(x => x.Go(null));
            var frames = chain.DetermineFrames();

            chain.Middleware.Any(x => x is FakeMiddleware1).ShouldBeTrue();
            chain.Middleware.Any(x => x is FakeMiddleware2).ShouldBeTrue();
        }
        public void apply_attribute_on_message_type()
        {
            var chain = HandlerChain.For <FakeHandler1>(x => x.Handle(new ErrorHandledMessage()));
            var model = chain.ToClass(theRules);

            chain.MaximumAttempts.ShouldBe(5);

            model.Methods.Single().Top.AllFrames().OfType <FakeFrame>().Count().ShouldBe(1);
        }
Ejemplo n.º 7
0
        public void create_by_static_method()
        {
            var chain = HandlerChain.For <Target>(nameof(Target.GoStatic));

            chain.MessageType.ShouldBe(typeof(Message2));

            var methodCall = chain.Handlers.Single();

            methodCall.HandlerType.ShouldBe(typeof(Target));
            methodCall.Method.Name.ShouldBe(nameof(Target.GoStatic));
        }
Ejemplo n.º 8
0
        public void create_by_method()
        {
            var chain = HandlerChain.For <Target>(x => x.Go(null));

            chain.MessageType.ShouldBe(typeof(Message1));

            var methodCall = chain.Handlers.Single();

            methodCall.HandlerType.ShouldBe(typeof(Target));
            methodCall.Method.Name.ShouldBe(nameof(Target.Go));
        }
Ejemplo n.º 9
0
        public void should_call_execute_method()
        {
            var fakeMessage    = new FakeMessage();
            var consumerCalled = false;
            var fakeEnvelope   = new Envelope();


            var chain = HandlerChain.For <FakeHandler>(x => x.FakeMethod(null));

            MockFor <IChainResolver>().Stub(x => x.FindUniqueByType(typeof(FakeMessage))).Return(chain);


            Services.Inject(fakeEnvelope);
            Services.PartialMockTheClassUnderTest();
            ClassUnderTest.Expect(x => x.Execute(fakeMessage));

            ClassUnderTest.TryExecute(fakeMessage, _ => consumerCalled = true);

            consumerCalled.ShouldBeFalse();
            ClassUnderTest.AssertWasCalled(x => x.Execute(fakeMessage));
        }
Ejemplo n.º 10
0
        public void default_number_of_max_attempts_is_1()
        {
            var chain = HandlerChain.For <Target>(nameof(Target.GoStatic));

            chain.MaximumAttempts.ShouldBe(1);
        }
Ejemplo n.º 11
0
        public void default_number_of_max_attempts_is_null()
        {
            var chain = HandlerChain.For <Target>(nameof(Target.GoStatic));

            chain.Retries.MaximumAttempts.HasValue.ShouldBeFalse();
        }
Ejemplo n.º 12
0
        public void is_saga_related_true()
        {
            var chain = HandlerChain.For <FooSaga>(x => x.Handle(null));

            SagaFramePolicy.IsSagaRelated(chain).ShouldBeTrue();
        }