public void UnregisterHandleNotRegistered_ThrowsException()
        {
            var dispatcher = new UnityMessageEventDispatcher();
            var handle     = new UnityMessageEventHandle <UnityTestMessagePayload>();

            Assert.Throws <UnityMessageHandleException>(() => dispatcher.UnregisterForMessageEvent <UnityTestMessagePayload>(handle));
        }
        public void UnregisterForMessageEvent_UnregistersHandle()
        {
            var dispatcher     = new UnityMessageEventDispatcher();
            var responseObject = new UnityTestMessageHandleResponseObject <UnityTestMessagePayload>();

            var handle = dispatcher.RegisterForMessageEvent <UnityTestMessagePayload>(responseObject.OnResponse);

            dispatcher.UnregisterForMessageEvent(handle);
            Assert.IsFalse(handle.IsRegistered());
        }
        public void UnregisterForMessageEvent_NoLongerReceivesEvents()
        {
            var dispatcher     = new UnityMessageEventDispatcher();
            var responseObject = new UnityTestMessageHandleResponseObject <UnityTestMessagePayload>();

            var handle = dispatcher.RegisterForMessageEvent <UnityTestMessagePayload>(responseObject.OnResponse);

            dispatcher.UnregisterForMessageEvent(handle);

            dispatcher.InvokeMessageEvent(new UnityTestMessagePayload());
            Assert.IsFalse(responseObject.ActionCalled);
        }
        public void RegisterForMessageEventOfType_InvokeReceivesMessageWithExpectedArgsForAllRegisteredListeners()
        {
            var dispatcher           = new UnityMessageEventDispatcher();
            var firstResponseObject  = new UnityTestMessageHandleResponseObject <UnityTestMessagePayload>();
            var secondResponseObject = new UnityTestMessageHandleResponseObject <UnityTestMessagePayload>();
            var thirdResponseObject  = new UnityTestMessageHandleResponseObject <OtherUnityTestMessagePayload>();

            var firstHandle  = dispatcher.RegisterForMessageEvent <UnityTestMessagePayload>(firstResponseObject.OnResponse);
            var secondHandle = dispatcher.RegisterForMessageEvent <UnityTestMessagePayload>(secondResponseObject.OnResponse);
            var thirdHandle  = dispatcher.RegisterForMessageEvent <OtherUnityTestMessagePayload>(thirdResponseObject.OnResponse);

            dispatcher.InvokeMessageEvent(new UnityTestMessagePayload());

            Assert.IsTrue(firstResponseObject.ActionCalled);
            Assert.IsTrue(secondResponseObject.ActionCalled);
            Assert.IsFalse(thirdResponseObject.ActionCalled);

            dispatcher.UnregisterForMessageEvent(thirdHandle);
            dispatcher.UnregisterForMessageEvent(secondHandle);
            dispatcher.UnregisterForMessageEvent(firstHandle);
        }
        public void RegisterForMessageEventOfType_InvokeDoesNotReceiveMessagesOfOtherTypes()
        {
            var dispatcher     = new UnityMessageEventDispatcher();
            var responseObject = new UnityTestMessageHandleResponseObject <UnityTestMessagePayload>();

            var handle = dispatcher.RegisterForMessageEvent <UnityTestMessagePayload>(responseObject.OnResponse);

            dispatcher.InvokeMessageEvent(new OtherUnityTestMessagePayload(false));

            Assert.IsFalse(responseObject.ActionCalled);

            dispatcher.UnregisterForMessageEvent(handle);
        }
        public void RegisterForMessageEventOfType_InvokeReceivesMessageWithExpectedArgs()
        {
            var dispatcher     = new UnityMessageEventDispatcher();
            var responseObject = new UnityTestMessageHandleResponseObject <UnityTestMessagePayload>();

            var handle = dispatcher.RegisterForMessageEvent <UnityTestMessagePayload>(responseObject.OnResponse);

            dispatcher.InvokeMessageEvent(new UnityTestMessagePayload(false));

            Assert.IsTrue(responseObject.ActionCalled);
            Assert.IsFalse(responseObject.MessagePayload.Flag);

            dispatcher.UnregisterForMessageEvent(handle);
        }
Exemple #7
0
        private void UnregisterForMessages()
        {
            _localDispatcher.UnregisterForMessageEvent(_gadgetUpdatedHandle);

            _localDispatcher.UnregisterForMessageEvent(_saveTriggerActivatedHandle);

            _localDispatcher.UnregisterForMessageEvent(_companionSlotsUpdatedHandle);

            _localDispatcher.UnregisterForMessageEvent(_pauseStatusChangedHandle);

            _localDispatcher.UnregisterForMessageEvent(_exitCinematicCameraHandle);
            _localDispatcher.UnregisterForMessageEvent(_enterCinematicCameraHandle);

            _localDispatcher.UnregisterForMessageEvent(_interactionStatusUpdatedHandle);
            _localDispatcher.UnregisterForMessageEvent(_activeInteractableUpdatedHandle);

            _localDispatcher.UnregisterForMessageEvent(_leftDeadActionStateHandle);
            _localDispatcher.UnregisterForMessageEvent(_enterDeadActionStateHandle);

            _localDispatcher.UnregisterForMessageEvent(_maxStaminaChangedEventHandle);
            _localDispatcher.UnregisterForMessageEvent(_staminaChangedEventHandle);

            _localDispatcher.UnregisterForMessageEvent(_maxHealthChangedEventHandle);
            _localDispatcher.UnregisterForMessageEvent(_healthChangedEventHandle);
        }
        public void UnregisterNullHandle_ThrowsException()
        {
            var dispatcher = new UnityMessageEventDispatcher();

            Assert.Throws <UnityMessageHandleException>(() => dispatcher.UnregisterForMessageEvent <UnityTestMessagePayload>(null));
        }