public void ShouldRegisterAndUnregisterFloatGameEventListener()
        {
            var gameEvent = ScriptableObject.CreateInstance <FloatGameEvent>();
            var listener  = new NoOpArgumentListener <float>();

            gameEvent.RegisterListener(listener);
            Assert.AreEqual(1, gameEvent.Listeners.Count());

            gameEvent.UnregisterListener(listener);
            Assert.AreEqual(0, gameEvent.Listeners.Count());
        }
        public void ShouldRegisterAndUnregisterTransformGameEventListener()
        {
            var gameEvent = ScriptableObject.CreateInstance <TransformGameEvent>();
            var listener  = new NoOpArgumentListener <UnityEngine.Transform>();

            gameEvent.RegisterListener(listener);
            Assert.AreEqual(1, gameEvent.Listeners.Count());

            gameEvent.UnregisterListener(listener);
            Assert.AreEqual(0, gameEvent.Listeners.Count());
        }
        public void ShouldRegisterAndUnregisterGameEventMultipleListeners()
        {
            var gameEvent      = ScriptableObject.CreateInstance <Vector3GameEvent>();
            var firstListener  = new NoOpArgumentListener <UnityEngine.Vector3>();
            var secondListener = new NoOpArgumentListener <UnityEngine.Vector3>();

            gameEvent.RegisterListener(firstListener);
            gameEvent.RegisterListener(secondListener);
            Assert.AreEqual(2, gameEvent.Listeners.Count());

            gameEvent.UnregisterListener(firstListener);
            gameEvent.UnregisterListener(secondListener);
            Assert.AreEqual(0, gameEvent.Listeners.Count());
        }