protected virtual void EstablishContext() { var saga = new TestSaga(Guid.NewGuid()); var inspector = new SagaStateMachineEventInspector<TestSaga>(); saga.Inspect(inspector); Results = inspector.GetResults().ToArray(); }
public void Should_handle_data_events_on_the_saga_state_machine() { EventInspectorResult <TestSaga> initiate = Results.Where(x => x.SagaEvent.Event == TestSaga.Initiate).Single(); var factory = MockRepository.GenerateMock <ISagaPolicyFactory>(); var context = MockRepository.GenerateMock <ISubscriberContext>(); //context.Stub(x => x.Pipeline).Return(new MessagePipeline()) var builder = MockRepository.GenerateMock <IObjectBuilder>(); context.Stub(x => x.Builder).Return(builder); builder.Stub(x => x.GetInstance <CorrelatedSagaStateMachineMessageSink <TestSaga, InitiateSimpleSaga> >(new Hashtable())) .Return(MockRepository.GenerateMock <CorrelatedSagaStateMachineMessageSink <TestSaga, InitiateSimpleSaga> >()); var policy = MockRepository.GenerateMock <ISagaPolicy <TestSaga, InitiateSimpleSaga> >(); factory.Stub(x => x.GetPolicy <TestSaga, InitiateSimpleSaga>(initiate.States, k => false)).Return(policy); var subscriber = new SagaEventSubscriber <TestSaga>(context, factory); subscriber.FastInvoke(new[] { initiate.SagaEvent.MessageType }, "Connect", initiate.SagaEvent.Event, initiate.States); }