Example #1
0
 public void TearDown()
 {
     _gameObjectEventListener.OnDisable();
     _gameObjectEventListener = null;
     _gameObjectEvent         = null;
     _unityEvent = null;
 }
Example #2
0
        public void Setup()
        {
            _unityEvent = new GameObjectEventUnityEvent();

            _gameObjectEvent = ScriptableObject.CreateInstance <GameObjectEvent>();

            _gameObjectEventListener            = new GameObject().AddComponent <GameObjectEventListener>();
            _gameObjectEventListener.soEvent    = _gameObjectEvent;
            _gameObjectEventListener.unityEvent = _unityEvent;
            _gameObjectEventListener.OnEnable();
        }
        public void OnGameObjectEventBroadcast_CalledWithExpectedArgument()
        {
            // Arrange
            GameObject gameObjectArgument      = null;
            var        unityEvent              = new GameObjectEventUnityEvent();
            var        gameObjectEvent         = ScriptableObject.CreateInstance <GameObjectEvent>();
            var        gameObjectEventListener = new GameObject().AddComponent <GameObjectEventListener>();

            gameObjectEventListener.soEvent    = gameObjectEvent;
            gameObjectEventListener.unityEvent = unityEvent;
            gameObjectEventListener.OnEnable();
            var dummyGameObject = new GameObject();

            unityEvent.AddListener(gameObject => gameObjectArgument = gameObject);

            // Act
            gameObjectEvent.Broadcast(dummyGameObject);

            // Assert
            Assert.AreSame(dummyGameObject, gameObjectArgument, "GameObject is passed in as a parameter");
        }
        public void OnGameObjectEventBroadcast_GameEventListenerInvokesUnityEventOnGameEventBroadcast()
        {
            // Arrange
            GameObject gameObjectArgument      = null;
            var        eventListenerCalled     = false;
            var        unityEvent              = new GameObjectEventUnityEvent();
            var        gameObjectEvent         = ScriptableObject.CreateInstance <GameObjectEvent>();
            var        gameObjectEventListener = new GameObject().AddComponent <GameObjectEventListener>();

            gameObjectEventListener.soEvent    = gameObjectEvent;
            gameObjectEventListener.unityEvent = unityEvent;
            gameObjectEventListener.OnEnable();
            var dummyGameObject = new GameObject();

            unityEvent.AddListener(gameObject => eventListenerCalled = true);

            // Act
            gameObjectEvent.Broadcast(dummyGameObject);

            // Assert
            Assert.True(eventListenerCalled);
        }
        public void ScriptEventListenerHandleFunction_UnityEventCanBeInvokedDirectly()
        {
            // Arrange
            var eventListenerCalled     = false;
            var unityEvent              = new GameObjectEventUnityEvent();
            var gameObjectEvent         = ScriptableObject.CreateInstance <GameObjectEvent>();
            var gameObjectEventListener = new GameObject().AddComponent <GameObjectEventListener>();

            gameObjectEventListener.soEvent    = gameObjectEvent;
            gameObjectEventListener.unityEvent = unityEvent;
            gameObjectEventListener.OnEnable();

            var dummyGameObject = new GameObject();

            unityEvent.AddListener(gameObject => eventListenerCalled = true);

            // Act
            gameObjectEventListener.OnEventBroadcast(dummyGameObject);

            // Assert
            Assert.True(eventListenerCalled);
        }