コード例 #1
0
        public void ShouldInvokeBaseClassHandlerForSubclassedMessages()
        {
            var handlerInvoked = false;
            var saga           = new CustomSaga <IMessageInterface, MySagaData>
            {
                HandlerAction = (request, context, data) =>
                {
                    handlerInvoked = true;
                    return(Task.FromResult(0));
                }
            };

            Test.Saga(saga)
            .WhenHandling <InterfaceImplementingMessage>();

            Assert.IsTrue(handlerInvoked);
        }
コード例 #2
0
        public void SetIncomingHeader()
        {
            const string customHeaderKey      = "custom-header";
            const string expectedHeaderValue  = "header value";
            var          containsCustomHeader = false;
            string       receivedHeaderValue  = null;

            var saga = new CustomSaga <MyRequest, MySagaData>
            {
                HandlerAction = (request, context, data) =>
                {
                    containsCustomHeader = context.MessageHeaders.TryGetValue(customHeaderKey, out receivedHeaderValue);
                    return(Task.FromResult(0));
                }
            };

            Test.Saga(saga)
            .SetIncomingHeader(customHeaderKey, expectedHeaderValue)
            .When((s, c) => s.Handle(new MyRequest(), c));

            Assert.IsTrue(containsCustomHeader);
            Assert.AreEqual(expectedHeaderValue, receivedHeaderValue);
        }