Пример #1
0
        public void UnregisterHandle(UnityMessageEvent <TMessageType> inEvent)
        {
            if (inEvent == null)
            {
                throw new UnityMessageHandleException("Invalid event on unregistration!");
            }

            inEvent.RemoveListener(_action);
            _action = null;
        }
Пример #2
0
        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);
        }