public void OnOneObjectEventBroadcast_GameEventListenerInvokesUnityEventOnGameEventBroadcast() { // Arrange var eventListenerCalled = false; var gameObjectEvent = ScriptableObject.CreateInstance <OneObjectEventAlias>(); var gameObjectEventListener = new GameObject().AddComponent <OneObjectEventListenerAlias>(); var unityEvent = new OneObjectEventListener <GameObject> .OneObjectEventUnityEvent(); unityEvent.AddListener(gameObject => eventListenerCalled = true); gameObjectEventListener.soEvent = gameObjectEvent; gameObjectEventListener.unityEvent = unityEvent; gameObjectEvent.RegisterListener(gameObjectEventListener); // Act gameObjectEvent.Broadcast(new GameObject()); // Assert Assert.True(eventListenerCalled); }
public void ScriptEventListenerHandleFunction_UnityEventCanBeInvokedDirectly() { // Arrange var eventListenerCalled = false; var gameObjectEvent = ScriptableObject.CreateInstance <OneObjectEventAlias>(); var gameObjectEventListener = new GameObject().AddComponent <OneObjectEventListenerAlias>(); var unityEvent = new OneObjectEventListener <GameObject> .OneObjectEventUnityEvent(); unityEvent.AddListener(gameObject => eventListenerCalled = true); gameObjectEventListener.soEvent = gameObjectEvent; gameObjectEventListener.unityEvent = unityEvent; gameObjectEvent.RegisterListener(gameObjectEventListener); // Act gameObjectEventListener.OnEventBroadcast(new GameObject()); // Assert Assert.True(eventListenerCalled); }
public void OnOneObjectEventBroadcast_CalledWithExpectedArgument() { // Arrange GameObject passedInArgument = null; var dummyGameObject = new GameObject(); var gameObjectEvent = ScriptableObject.CreateInstance <OneObjectEventAlias>(); var gameObjectEventListener = new GameObject().AddComponent <OneObjectEventListenerAlias>(); var unityEvent = new OneObjectEventListener <GameObject> .OneObjectEventUnityEvent(); unityEvent.AddListener(gameObject => passedInArgument = gameObject); gameObjectEventListener.soEvent = gameObjectEvent; gameObjectEventListener.unityEvent = unityEvent; gameObjectEvent.RegisterListener(gameObjectEventListener); // Act gameObjectEvent.Broadcast(dummyGameObject); // Assert Assert.AreSame(dummyGameObject, passedInArgument); }