示例#1
0
        public void StackProcessor_CallsSuccessiveProcessors()
        {
            var processor = new StackProcessor();

            var processorCallList = new List <string>();

            Action <T> AddToCallList <T>(object x) => new Action <T>(_ => processorCallList.Add(x.GetType().FullName));

            var processor1 = new PassthroughHandler <DummyMessage, DummyMessage2>();

            processor1.Callback = AddToCallList <DummyMessage>(processor1);

            var processor2 = new PassthroughHandler <DummyMessage2, DummyMessage3>();

            processor2.Callback = AddToCallList <DummyMessage2>(processor2);

            var processor3 = new NoopHandler <DummyMessage3>();

            processor3.Callback = AddToCallList <DummyMessage3>(processor3);

            processor.RegisterHandler(processor1);
            processor.RegisterHandler(processor2);
            processor.RegisterHandler(processor3);

            processor.AddMessage(new DummyMessage());
            processor.ProcessMessages();

            processorCallList.Should().ContainInOrder(
                processor1.GetType().FullName,
                processor2.GetType().FullName,
                processor3.GetType().FullName);
        }
示例#2
0
        public void StackProcessor_CallsProcessorWithMessage()
        {
            var processor = new StackProcessor();

            var wasCalled = false;
            var handler   = new NoopHandler <DummyMessage>
            {
                Callback = _ => wasCalled = true
            };

            processor.RegisterHandler(handler);
            processor.AddMessage(new DummyMessage());

            processor.ProcessMessages();

            wasCalled.Should().BeTrue("the message processor should have been called");
        }
示例#3
0
        public void RouteDataRouteHandlerCtor()
        {
            RouteData rd = new RouteData(null, null);

            Assert.Null(rd.Route);
            Assert.Null(rd.RouteHandler);

            Assert.NotNull(rd.Values);
            Assert.NotNull(rd.DataTokens);

            // can't construct a RouteBase as it will throw PNSE
            RouteBase     rb = null;
            IRouteHandler rh = new NoopHandler();

            rd = new RouteData(rb, rh);
            Assert.Same(rh, rd.RouteHandler);

            Assert.NotNull(rd.Values);
            Assert.NotNull(rd.DataTokens);
        }