예제 #1
0
        public void TestEventManagerReceiveEvent()
        {
            var receivedEvent1 = false;

            void Handler1(TransmissionInfo transmissionInfo)
            {
                receivedEvent1 = true;
            }

            var events = _eventSubscriber.EventManager.GetEvents <IBasicTestEvents>();

            events.Events.TestEvent1 += Handler1;
            Assert.False(receivedEvent1);
            Assert.False(_eventSubscriber.ReceivedData);

            _basicTestEventsImpl.TriggerTestEvent1();
            Assert.True(receivedEvent1);
            Assert.True(_eventSubscriber.ReceivedData);

            _eventSubscriber.Reset();
            receivedEvent1 = false;

            events.Events.TestEvent1 -= Handler1;

            _basicTestEventsImpl.TriggerTestEvent1();
            Assert.False(_eventSubscriber.ReceivedData);
            Assert.False(receivedEvent1);
        }
        public void TestFilter()
        {
            var events = _eventSubscriber.EventManager.GetEvents <IBasicTestEvents>();

            events.AddFilter(new TypedEventFilter <string>(x => x != "test"));

            var raised1 = false;
            var raised2 = false;

            events.Events.TestEvent1 += info => raised1 = true;

            _basicTestEventsImpl.TriggerTestEvent1();
            Assert.True(raised1);

            events.Events.TestEvent2 += (transInfo, args) => raised2 = true;
            _basicTestEventsImpl.TriggerTestEvent2("test", "324asd");
            Assert.False(raised2);

            _basicTestEventsImpl.TriggerTestEvent2("asd", "a3");
            Assert.True(raised2);
        }