예제 #1
0
        public void TestEventTypeCheck()
        {
            var @event = new OtherEvent();
            var binder = new AssertingStaticEventBinder();
            var engine = new DefaultEventEngine <IGameContext>(new StandardKernel(), new[] { binder });

            engine.Fire(null, @event);
        }
예제 #2
0
        public void TestBasicPropagation()
        {
            var @event = new BasicEvent {
                Original = 1
            };
            var binder = new BasicStaticEventBinder();
            var engine = new DefaultEventEngine <IGameContext>(new StandardKernel(), new[] { binder });

            engine.Fire(null, @event);
            Assert.Equal(1, @event.HitValue);
        }
예제 #3
0
        public void TestFilteredPropagationOutOfOrder()
        {
            var event1 = new BasicEvent {
                Original = 1
            };
            var event2 = new BasicEvent {
                Original = 2
            };
            var binder = new FilteredStaticEventBinder();
            var engine = new DefaultEventEngine <IGameContext>(new StandardKernel(), new[] { binder });

            engine.Fire(null, event2);
            Assert.NotEqual(2, event2.HitValue);
            engine.Fire(null, event1);
            Assert.Equal(1, event1.HitValue);
        }