public void FlagEntityEventEventSystemListenerCanBeRemovedInCallbackAndRemoveComponent()
        {
            var eventTest = new RemoveEventTest(_contexts, true);

            eventTest.listener.IsFlagEntityEvent = true;
            _flagEntityEventSystem.Execute();

            Assert.AreEqual("true", eventTest.value);
        }
        public void StandardEventListenerCanBeRemovedInCallbackAndRemoveComponent()
        {
            var eventTest = new RemoveEventTest(_contexts, true);

            _contexts.Test.CreateEntity().AddStandardEvent("Test");
            _standardEventSystem.Execute();

            Assert.AreEqual("Test", eventTest.value);
        }
        public void StandardEventListenerCanBeRemovedInMiddleOfCallback()
        {
            var eventTest1 = new RemoveEventTest(_contexts, false);
            var eventTest2 = new RemoveEventTest(_contexts, false);
            var eventTest3 = new RemoveEventTest(_contexts, false);

            _contexts.Test.CreateEntity().AddStandardEvent("Test");
            _standardEventSystem.Execute();

            Assert.AreEqual("Test", eventTest1.value);
            Assert.AreEqual("Test", eventTest2.value);
            Assert.AreEqual("Test", eventTest3.value);
        }
示例#4
0
    void when_events()
    {
        Contexts contexts = null;

        before = () => { contexts = new Contexts(); };

        context["event"] = () => {
            AnyStandardEventEventSystem eventSystem = null;

            before = () => { eventSystem = new AnyStandardEventEventSystem(contexts); };

            it["can remove listener in callback"] = () => {
                var eventTest = new RemoveEventTest(contexts, false);

                contexts.test.CreateEntity().AddStandardEvent("Test");
                eventSystem.Execute();

                eventTest.value.should_be("Test");
            };

            it["can remove listener in callback in the middle"] = () => {
                var eventTest1 = new RemoveEventTest(contexts, false);
                var eventTest2 = new RemoveEventTest(contexts, false);
                var eventTest3 = new RemoveEventTest(contexts, false);

                contexts.test.CreateEntity().AddStandardEvent("Test");
                eventSystem.Execute();

                eventTest1.value.should_be("Test");
                eventTest2.value.should_be("Test");
                eventTest3.value.should_be("Test");
            };

            it["can remove listener in callback and remove component"] = () => {
                var eventTest = new RemoveEventTest(contexts, true);

                contexts.test.CreateEntity().AddStandardEvent("Test");
                eventSystem.Execute();

                eventTest.value.should_be("Test");
            };
        };

        context["entity event"] = () => {
            FlagEntityEventEventSystem eventSystem = null;

            before = () => { eventSystem = new FlagEntityEventEventSystem(contexts); };

            it["can remove listener in callback"] = () => {
                var eventTest = new RemoveEventTest(contexts, false);

                eventTest.listener.isFlagEntityEvent = true;
                eventSystem.Execute();

                eventTest.value.should_be("true");
            };

            it["can remove listener in callback and remove component"] = () => {
                var eventTest = new RemoveEventTest(contexts, true);

                eventTest.listener.isFlagEntityEvent = true;
                eventSystem.Execute();

                eventTest.value.should_be("true");
            };
        };
    }