Пример #1
0
        public void OnGameObjectEventBroadcast_GameEventListenerInvokesUnityEventOnGameEventBroadcast()
        {
            // Arrange
            var eventListenerCalled     = false;
            var gameObjectEvent         = ScriptableObject.CreateInstance <GameObjectEvent>();
            var gameObjectEventListener = new GameObject().AddComponent <GameObjectEventListener>();
            var unityEvent = new GameObjectEventListener.GameObjectEventUnityEvent();

            unityEvent.AddListener(gameObject => eventListenerCalled = true);
            gameObjectEventListener.soEvent    = gameObjectEvent;
            gameObjectEventListener.unityEvent = unityEvent;
            gameObjectEvent.RegisterListener(gameObjectEventListener);

            // Act
            gameObjectEvent.Broadcast(new GameObject());

            // Assert
            Assert.True(eventListenerCalled);
        }
Пример #2
0
        public void ScriptEventListenerHandleFunction_UnityEventCanBeInvokedDirectly()
        {
            // Arrange
            var eventListenerCalled     = false;
            var gameObjectEvent         = ScriptableObject.CreateInstance <GameObjectEvent>();
            var gameObjectEventListener = new GameObject().AddComponent <GameObjectEventListener>();
            var unityEvent = new GameObjectEventListener.GameObjectEventUnityEvent();

            unityEvent.AddListener(gameObject => eventListenerCalled = true);
            gameObjectEventListener.soEvent    = gameObjectEvent;
            gameObjectEventListener.unityEvent = unityEvent;
            gameObjectEvent.RegisterListener(gameObjectEventListener);

            // Act
            gameObjectEventListener.OnEventBroadcast(new GameObject());

            // Assert
            Assert.True(eventListenerCalled);
        }
Пример #3
0
        public void OnGameObjectEventBroadcast_CalledWithExpectedArgument()
        {
            // Arrange
            GameObject passedInArgument        = null;
            var        dummyGameObject         = new GameObject();
            var        gameObjectEvent         = ScriptableObject.CreateInstance <GameObjectEvent>();
            var        gameObjectEventListener = new GameObject().AddComponent <GameObjectEventListener>();
            var        unityEvent = new GameObjectEventListener.GameObjectEventUnityEvent();

            unityEvent.AddListener(gameObject => passedInArgument = gameObject);
            gameObjectEventListener.soEvent    = gameObjectEvent;
            gameObjectEventListener.unityEvent = unityEvent;
            gameObjectEvent.RegisterListener(gameObjectEventListener);

            // Act
            gameObjectEvent.Broadcast(dummyGameObject);

            // Assert
            Assert.AreSame(dummyGameObject, passedInArgument, "GameObject is passed in as a parameter");
        }