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); }
public void determine_the_saga_state_type() { var chain = HandlerChain.For <FooSaga>(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.ToGenerationModel(theConfig); model.Top.AllFrames().OfType <FakeFrame>().Count().ShouldBe(1); }
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); }
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)); }
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)); }
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)); }
public void default_number_of_max_attempts_is_1() { var chain = HandlerChain.For <Target>(nameof(Target.GoStatic)); chain.MaximumAttempts.ShouldBe(1); }
public void default_number_of_max_attempts_is_null() { var chain = HandlerChain.For <Target>(nameof(Target.GoStatic)); chain.Retries.MaximumAttempts.HasValue.ShouldBeFalse(); }
public void is_saga_related_true() { var chain = HandlerChain.For <FooSaga>(x => x.Handle(null)); SagaFramePolicy.IsSagaRelated(chain).ShouldBeTrue(); }