Esempio n. 1
0
        public void should_not_dispatch_message_multiple_times_if_same_handler_is_registered_multiple_times()
        {
            // Arrange
            var testHandler = new TestHandler <TestMessage>();
            var dispatcher  = new MessageDispatcher();

            dispatcher.AddHandler <TestMessage>(testHandler);
            dispatcher.AddHandler <TestMessage>(testHandler);
            dispatcher.AddHandler <TestMessage>(testHandler);

            // Act
            dispatcher.Dispatch(0, new TestMessage(42));

            // Assert
            Assert.AreEqual(1, testHandler.HandledMessages.Count);
        }
Esempio n. 2
0
        public void should_unsubscribe_from_a_specific_handler()
        {
            // Arrange
            var testHandler1 = new TestHandler <TestMessage>();
            var testHandler2 = new TestHandler <TestMessage>();
            var dispatcher   = new MessageDispatcher();

            dispatcher.AddHandler <TestMessage>(testHandler1);
            dispatcher.AddHandler <TestMessage>(testHandler2).Dispose();

            // Act
            dispatcher.Dispatch(0, new TestMessage(42));
            dispatcher.Dispatch(0, new TestMessage(43));

            // Assert
            Assert.AreEqual(2, testHandler1.HandledMessages.Count);
            Assert.AreEqual(0, testHandler2.HandledMessages.Count);
        }
Esempio n. 3
0
        public void should_dispatch_to_multiple_handler()
        {
            // Arrange
            var testHandler1 = new TestHandler <TestMessage>();
            var testHandler2 = new TestHandler <TestMessage>();
            var dispatcher   = new MessageDispatcher();

            dispatcher.AddHandler <TestMessage>(testHandler1);
            dispatcher.AddHandler <TestMessage>(testHandler2);

            // Act
            dispatcher.Dispatch(0, new TestMessage(42));

            // Assert
            var handledMessage1 = testHandler1.HandledMessages.Single();

            Assert.AreEqual(42, handledMessage1.Value);

            var handledMessage2 = testHandler2.HandledMessages.Single();

            Assert.AreEqual(42, handledMessage2.Value);
        }
Esempio n. 4
0
        public void should_not_dispatch_messages_if_the_subscription_doesnt_match()
        {
            // Arrange
            var testHandler = new TestHandler <TestMessage>();
            var dispatcher  = new MessageDispatcher();

            dispatcher.AddHandler <TestMessage>(testHandler);

            // Act
            dispatcher.Dispatch(0, new OtherTestMessage(42));

            // Assert
            Assert.AreEqual(0, testHandler.HandledMessages.Count);
        }
Esempio n. 5
0
        public void should_not_dispatch_message_after_unsubscription()
        {
            // Arrange
            var testHandler = new TestHandler <TestMessage>();
            var dispatcher  = new MessageDispatcher();

            dispatcher.AddHandler <TestMessage>(testHandler).Dispose();

            // Act
            dispatcher.Dispatch(0, new TestMessage(42));

            // Assert
            Assert.AreEqual(0, testHandler.HandledMessages.Count);
        }
Esempio n. 6
0
        public void should_dispatch_message_to_handler()
        {
            // Arrange
            var testHandler = new TestHandler <TestMessage>();
            var dispatcher  = new MessageDispatcher();

            dispatcher.AddHandler <TestMessage>(testHandler);

            // Act
            dispatcher.Dispatch(0, new TestMessage(42));

            // Assert
            var handledMessage = testHandler.HandledMessages.Single();

            Assert.AreEqual(42, handledMessage.Value);
        }
Esempio n. 7
0
        public MainWindow()
        {
            InitializeComponent();

            DataContext = this;

            MsgDispatcher = MessageDispatcher.GetInstance();

            MsgDispatcher.AddHandler(MessageHandler);

            statusService = StatusService.GetInstance();
            updateService = UpdateService.GetInstance();
            logger        = LogService.GetLogger();

            Status = statusService.GetStatus();
        }
Esempio n. 8
0
        public void should_dispatch_multiple_messages_to_handler()
        {
            // Arrange
            var testHandler = new TestHandler <TestMessage>();
            var dispatcher  = new MessageDispatcher();

            dispatcher.AddHandler <TestMessage>(testHandler);

            // Act
            dispatcher.Dispatch(0, new TestMessage(42));
            dispatcher.Dispatch(0, new TestMessage(43));

            // Assert
            Assert.AreEqual(2, testHandler.HandledMessages.Count);
            Assert.AreEqual(42, testHandler.HandledMessages[0].Value);
            Assert.AreEqual(43, testHandler.HandledMessages[1].Value);
        }
Esempio n. 9
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="member"></param>
        public void AddTaxCollectorListener(GuildMember member)
        {
            foreach (var taxCollector in m_taxCollectors)
            {
                taxCollector.AddMessage(() =>
                {
                    if (taxCollector.HasGameAction(Action.GameActionTypeEnum.FIGHT))
                    {
                        var fight = taxCollector.Fight as TaxCollectorFight;
                        if (fight.State == FightStateEnum.STATE_PLACEMENT)
                        {
                            member.Dispatch(WorldMessage.GUILD_TAXCOLLECTOR_ATTACKER_JOIN(taxCollector.Id, fight.Team0.Fighters.ToArray()));
                            if (taxCollector.Defenders.Count > 0)
                            {
                                member.Dispatch(WorldMessage.GUILD_TAXCOLLECTOR_DEFENDER_JOIN(taxCollector.Id, taxCollector.Defenders.ToArray()));
                            }
                        }
                    }
                });
            }

            m_taxCollectorDispatcher.AddHandler(member.Dispatch);
        }
Esempio n. 10
0
 public IDisposable Subscribe <T>(IMessageHandler handler)
 {
     return(_messageDispatcher.AddHandler <T>(handler));
 }