public void UnregisterHandle(UnityMessageEvent <TMessageType> inEvent) { if (inEvent == null) { throw new UnityMessageHandleException("Invalid event on unregistration!"); } inEvent.RemoveListener(_action); _action = null; }
public void RegisterHandle(UnityMessageEvent <TMessageType> inEvent, UnityAction <TMessageType> inAction) { if (inAction == null || inEvent == null) { throw new UnityMessageHandleException("Invalid action or event on registration!"); } _action = inAction; inEvent.AddListener(inAction); }
public void UnregisterHandle_IsRegistered_False() { var handle = new UnityMessageEventHandle <UnityTestMessagePayload>(); var unityEvent = new UnityMessageEvent <UnityTestMessagePayload>(); var responseObject = new UnityTestMessageHandleResponseObject <UnityTestMessagePayload>(); handle.RegisterHandle(unityEvent, responseObject.OnResponse); handle.UnregisterHandle(unityEvent); Assert.IsFalse(handle.IsRegistered()); }
public void UnregisterHandle_NullEvent_ThrowsException() { var handle = new UnityMessageEventHandle <UnityTestMessagePayload>(); var unityEvent = new UnityMessageEvent <UnityTestMessagePayload>(); var responseObject = new UnityTestMessageHandleResponseObject <UnityTestMessagePayload>(); handle.RegisterHandle(unityEvent, responseObject.OnResponse); Assert.Throws <UnityMessageHandleException>(() => handle.UnregisterHandle(null)); handle.UnregisterHandle(unityEvent); }
public void RegisterHandle_ActionIsAddedAsListener() { var handle = new UnityMessageEventHandle <UnityTestMessagePayload>(); var unityEvent = new UnityMessageEvent <UnityTestMessagePayload>(); var responseObject = new UnityTestMessageHandleResponseObject <UnityTestMessagePayload>(); handle.RegisterHandle(unityEvent, responseObject.OnResponse); unityEvent.Invoke(new UnityTestMessagePayload()); Assert.IsTrue(responseObject.ActionCalled); handle.UnregisterHandle(unityEvent); }