protected virtual void EstablishContext()
		{
			var saga = new TestSaga(Guid.NewGuid());

			var inspector = new SagaStateMachineEventInspector<TestSaga>();
			saga.Inspect(inspector);

			Results = inspector.GetResults().ToArray();
		}
Example #2
0
        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);
        }