public void doEventWithTriggerTest()
        {
            SyncTriggerSystem system = createSystem();
            int a = 0, b = 0;

            system.regTrigBfr("TestEvent", new SyncTrigger(game =>
            {
                return(game.trigger.currentTask.context.hasVar("b"));
            }, game =>
            {
                b = game.trigger.currentTask.context.getVar <int>("b");
            }));
            system.regTrigAft("TestEvent", new SyncTrigger(game =>
            {
                return(game.trigger.currentTask.context.hasVar("a"));
            }, game =>
            {
                a = game.trigger.currentTask.context.getVar <int>("a");
            }));
            system.doEvent(new EventContext("TestEvent")
            {
                { "a", 1 },
                { "b", 2 }
            });

            Assert.AreEqual(2, b);
            Assert.AreEqual(1, a);
        }
        public void regGetUnregTest()
        {
            SyncTriggerSystem system = createSystem();

            Assert.AreEqual(0, system.getTrigBfr("Test").Count());
            Assert.AreEqual(0, system.getTrigAft("Test").Count());
            SyncTrigger t1 = new SyncTrigger();
            SyncTrigger t2 = new SyncTrigger();

            system.regTrigBfr("Test", t1);
            system.regTrigAft("Test", t2);
            Assert.AreEqual(1, system.getTrigBfr("Test").Count());
            Assert.AreEqual(t1, system.getTrigBfr("Test").First());
            Assert.AreEqual(1, system.getTrigAft("Test").Count());
            Assert.AreEqual(t2, system.getTrigAft("Test").First());
            system.unregTrigBfr("Test", t1);
            system.unregTrigAft("Test", t2);
            Assert.AreEqual(0, system.getTrigBfr("Test").Count());
            Assert.AreEqual(0, system.getTrigAft("Test").Count());
        }