Пример #1
0
        public void RegisteringHandlersToSkipDuringBeforeHandleSkipsHandlerInvokationForSagas()
        {
            // arrange
            TrackDisposable(TransactionContext.None());
            var handler = new BooleanSaga();

            activator.UseHandler(handler);

            var mock = Mock <IMessageContext>();

            mock.Stub(m => m.Items).Return(new Dictionary <string, object>());
            mock.Stub(m => m.Headers).Return(new Dictionary <string, object>());

            dispatcher.BeforeHandling += (message, hndl) =>
            {
                var ctx = MessageContext.GetCurrent();
                mock.Stub(m => m.HandlersToSkip).Return(new List <Type>()
                {
                    hndl.GetType()
                }.AsReadOnly());
            };

            using (var fake = FakeMessageContext.Establish(mock))
            {
                // act
                dispatcher.Dispatch <object>(new Object()).Wait();
            }
            // assert
            Assert.IsFalse(handler.Handled);
        }
Пример #2
0
        public void IfBeforeHandlingNotDefinedSagaHandlerIsExecuted()
        {
            // arrange
            var handler = new BooleanSaga();

            activator.UseHandler(handler);

            // act
            dispatcher.Dispatch <object>(new Object()).Wait();

            // assert
            Assert.IsTrue(handler.Handled);
        }