コード例 #1
0
        public void CanRegisterMultipleHandlersForOneMessageType()
        {
            // Act
            Dispatcher.RegisterMessageHandlers(typeof(MyMultiMessage).Assembly);

            IEnumerable <MessageHandlerRegistration> handlers      = Dispatcher.GetMessageHandlerRegistrations();
            IList <MessageHandlerRegistration>       registrations = handlers.Where(h => h.MessageType == typeof(MyMultiMessage)).ToList();

            MessageHandlerRegistration r1 = handlers.Where(h => h.Method.DeclaringType == typeof(MyMultiMessageHandler1)).FirstOrDefault();

            // Assert
            Assert.AreEqual(2, registrations.Count);
            Assert.IsNotNull(r1);
        }
コード例 #2
0
        public void CanRegisterMessageHandler()
        {
            // Act
            Dispatcher.RegisterMessageHandlers(typeof(MyMessageHandler).Assembly);
            IList <MessageHandlerRegistration> handlers = Dispatcher.GetMessageHandlerRegistrations().ToList();

            // Assert
            MessageHandlerRegistration r1 = handlers.Where(h => h.MessageType == typeof(MyMessage1)).FirstOrDefault();
            MessageHandlerRegistration r2 = handlers.Where(h => h.MessageType == typeof(MyMessage2)).FirstOrDefault();
            MessageHandlerRegistration ro = handlers.Where(h => h.MessageType == typeof(MyOtherMessage)).FirstOrDefault();

            Assert.IsNotNull(r1, "Must find registration for MyMessage1");
            Assert.AreEqual(typeof(MyMessage1), r1.MessageType);
            Assert.AreEqual("Handle", r1.Method.Name);

            Assert.IsNotNull(r1, "Must find registration for MyMessage2");
            Assert.AreEqual(typeof(MyMessage2), r2.MessageType);
            Assert.AreEqual("Handle", r2.Method.Name);

            Assert.IsNull(ro, "Must not choose MyOtherMessage method - its not a handler");
        }