public void TestMultipleAcceptedTypes()
        {
            PayloadTypeSelector selector = new PayloadTypeSelector(typeof(string), typeof(int));

            Assert.IsTrue(selector.Accept(new StringMessage("test1")));
            Assert.IsTrue(selector.Accept(new Message <int>(2)));
            Assert.IsFalse(selector.Accept(new ErrorMessage(new Exception())));
        }
예제 #2
0
        public void SubscribeObject <T>(Action <T> action, Predicate <T> subscriberFilter, SynchronizationContext synchronizationContext)
        {
            MessageHandlerChain chain             = new MessageHandlerChain();
            IMessageSelector    messageSelector   = new PayloadTypeSelector(typeof(T));
            IMessageSelector    predecateSelector = new PredicateSelector <T>(subscriberFilter);

            ActionHandler <T> actionHandler = new ActionHandler <T>(action, synchronizationContext);

            IList <IMessageHandler> handlerList = new List <IMessageHandler>();

            handlerList.Add(new MessageFilter(messageSelector));
            handlerList.Add(new MessageFilter(predecateSelector));
            handlerList.Add(actionHandler);
            chain.Handlers = handlerList;

            Subscribe(chain);
        }
예제 #3
0
        public void SubscribeObject <T>(object subscriber, Predicate <T> subscriberFilter, SynchronizationContext synchronizationContext)
        {
            MessageHandlerChain chain             = new MessageHandlerChain();
            IMessageSelector    messageSelector   = new PayloadTypeSelector(typeof(T));
            IMessageSelector    predecateSelector = new PredicateSelector <T>(subscriberFilter);

            UIServiceActivatingHandler serviceActivatingHandler = new UIServiceActivatingHandler(subscriber, "Receive", synchronizationContext);

            IList <IMessageHandler> handlerList = new List <IMessageHandler>();

            handlerList.Add(new MessageFilter(messageSelector));
            handlerList.Add(new MessageFilter(predecateSelector));
            handlerList.Add(serviceActivatingHandler);
            chain.Handlers = handlerList;

            Subscribe(chain);
        }
        public void TestSuperclassOfAcceptedTypeIsNotSelected()
        {
            PayloadTypeSelector selector = new PayloadTypeSelector(typeof(MessageHandlingException));

            Assert.IsFalse(selector.Accept(new ErrorMessage(new Exception("test"))));
        }
        public void TestSubclassOfAcceptedTypeIsSelected()
        {
            PayloadTypeSelector selector = new PayloadTypeSelector(typeof(Exception));

            Assert.IsTrue(selector.Accept(new ErrorMessage(new MessagingException("test"))));
        }
        public void TestNonAcceptedTypeIsNotSelected()
        {
            PayloadTypeSelector selector = new PayloadTypeSelector(typeof(int));

            Assert.IsFalse(selector.Accept(new StringMessage("test")));
        }
        public void TestAcceptedTypeIsSelected()
        {
            PayloadTypeSelector selector = new PayloadTypeSelector(typeof(string));

            Assert.IsTrue(selector.Accept(new StringMessage("test")));
        }