コード例 #1
0
        public void TestSendEvent()
        {
            int firstEventCount  = 0;
            int secondEventCount = 0;

            OnHearEvent onHearFirstEvent = (sender, e) =>
            {
                Assert.AreSame(sender, this);
                Assert.True(e is OneSimpleEventArgs);
                firstEventCount++;
            };

            OnHearEvent onHearSecondEvent = (sender, e) =>
            {
                Assert.AreSame(sender, this);
                Assert.True(e is AnotherSimpleEventArgs);
                secondEventCount++;
            };

            m_EventService.AddEventListener(OneSimpleEventArgs.TheEventId, onHearFirstEvent);

            m_EventService.SendEvent(this, new OneSimpleEventArgs());
            m_EventService.SendEvent(this, new AnotherSimpleEventArgs());

            Assert.AreEqual(0, firstEventCount);
            Assert.AreEqual(0, secondEventCount);

            ((MockTickService)m_TickService).ManualUpdate(new TimeStruct(0f, 0f, 0f, 0f));

            Assert.AreEqual(1, firstEventCount);
            Assert.AreEqual(0, secondEventCount);

            m_EventService.AddEventListener(AnotherSimpleEventArgs.TheEventId, onHearSecondEvent);

            m_EventService.AddEventListener(OneSimpleEventArgs.TheEventId, onHearFirstEvent);

            m_EventService.SendEvent(this, new OneSimpleEventArgs());
            m_EventService.SendEvent(this, new AnotherSimpleEventArgs());

            Assert.AreEqual(1, firstEventCount);
            Assert.AreEqual(0, secondEventCount);

            ((MockTickService)m_TickService).ManualUpdate(new TimeStruct(0f, 0f, 0f, 0f));

            Assert.AreEqual(3, firstEventCount);
            Assert.AreEqual(1, secondEventCount);

            m_EventService.RemoveEventListener(OneSimpleEventArgs.TheEventId, onHearFirstEvent);
            m_EventService.RemoveEventListener(AnotherSimpleEventArgs.TheEventId, onHearSecondEvent);

            m_EventService.SendEvent(this, new OneSimpleEventArgs());
            m_EventService.SendEvent(this, new AnotherSimpleEventArgs());

            ((MockTickService)m_TickService).ManualUpdate(new TimeStruct(0f, 0f, 0f, 0f));

            Assert.AreEqual(4, firstEventCount);
            Assert.AreEqual(1, secondEventCount);
        }