public void SetThreeEventsTriggerWithTimeWindowAndIsAbleToTriggerIncorrectTimeTest()
        {
            EffectTrigger target = new EffectTrigger();

            ModalityEvent modalityEvent1 = new ModalityEvent();
            modalityEvent1.Type = ActionType.HAND_SWIPE_LEFT;
            ModalityEvent modalityEvent2 = new ModalityEvent();
            modalityEvent2.Type = ActionType.HAND_SWIPE_RIGHT;
            ModalityEvent modalityEvent3 = new ModalityEvent();
            modalityEvent3.Type = ActionType.POSTURE_DIRECTION_KINECT;
            target.Triggers.Add(modalityEvent1);
            target.Triggers.Add(modalityEvent2);
            target.Triggers.Add(modalityEvent3);
            //Set the time windows constraint
            target.TimeWindow = 1500;

            ModalityEvent newModalityEvent1 = new ModalityEvent();
            newModalityEvent1.Type = ActionType.HAND_SWIPE_LEFT;
            newModalityEvent1.EventTime = 1000;
            ModalityEvent newModalityEvent2 = new ModalityEvent();
            newModalityEvent2.Type = ActionType.HAND_SWIPE_RIGHT;
            newModalityEvent2.EventTime = 1500;
            ModalityEvent newModalityEvent3 = new ModalityEvent();
            newModalityEvent3.Type = ActionType.POSTURE_DIRECTION_KINECT;
            newModalityEvent3.EventTime = 3000;

            Assert.AreEqual(true, target.HasEvent(newModalityEvent1));
            Assert.AreEqual(true, target.HasEvent(newModalityEvent2));
            Assert.AreEqual(true, target.HasEvent(newModalityEvent3));

            target.SetNewEvent(newModalityEvent1);
            Assert.AreEqual(false, target.IsReadyToTrigger(1001));

            target.SetNewEvent(newModalityEvent2);
            Assert.AreEqual(false, target.IsReadyToTrigger(1550));

            target.SetNewEvent(newModalityEvent3);
            Assert.AreEqual(false, target.IsReadyToTrigger(3001));
        }
        public void SetTwoEventsTriggerAndIsNotAbleToTrigger()
        {
            EffectTrigger target = new EffectTrigger();

            ModalityEvent modalityEvent1 = new ModalityEvent();
            modalityEvent1.Type = ActionType.HAND_SWIPE_LEFT;
            ModalityEvent modalityEvent2 = new ModalityEvent();
            modalityEvent2.Type = ActionType.HAND_SWIPE_RIGHT;
            target.Triggers.Add(modalityEvent1);
            target.Triggers.Add(modalityEvent2);

            ModalityEvent newModalityEvent1 = new ModalityEvent();
            newModalityEvent1.Type = ActionType.HAND_SWIPE_LEFT;
            ModalityEvent newModalityEvent2 = new ModalityEvent();
            newModalityEvent2.Type = ActionType.SPEECH_NEXT;

            Assert.AreEqual(true, target.HasEvent(newModalityEvent1));
            Assert.AreEqual(false, target.HasEvent(newModalityEvent2));

            target.SetNewEvent(newModalityEvent1);
            Assert.AreEqual(false, target.IsReadyToTrigger(0));

            target.SetNewEvent(newModalityEvent2);
            Assert.AreEqual(false, target.IsReadyToTrigger(0));
        }
        public void SetTwoEventTriggerWithTimeWindowAndIsNotAbleToTriggerOnIncorrectTimeTest()
        {
            EffectTrigger target = new EffectTrigger();

            ModalityEvent modalityEvent1 = new ModalityEvent();
            modalityEvent1.Type = ActionType.HAND_SWIPE_LEFT;
            ModalityEvent modalityEvent2 = new ModalityEvent();
            modalityEvent2.Type = ActionType.HAND_SWIPE_RIGHT;
            target.Triggers.Add(modalityEvent1);
            target.Triggers.Add(modalityEvent2);
            //Set the time windows constraint
            target.TimeWindow = 2000;

            ModalityEvent newModalityEvent1 = new ModalityEvent();
            newModalityEvent1.Type = ActionType.HAND_SWIPE_LEFT;
            newModalityEvent1.EventTime = 1000;
            ModalityEvent newModalityEvent2 = new ModalityEvent();
            newModalityEvent2.Type = ActionType.HAND_SWIPE_RIGHT;
            newModalityEvent2.EventTime = 3001;

            Assert.AreEqual(true, target.HasEvent(newModalityEvent1));
            Assert.AreEqual(true, target.HasEvent(newModalityEvent2));

            target.SetNewEvent(newModalityEvent1);
            Assert.AreEqual(false, target.IsReadyToTrigger(1001));

            target.SetNewEvent(newModalityEvent2);
            Assert.AreEqual(false, target.IsReadyToTrigger(3002));
        }
        public void SetOneEventTriggerAndIsNotAbleToTrigger()
        {
            EffectTrigger target = new EffectTrigger();

            ModalityEvent modalityEvent = new ModalityEvent();
            modalityEvent.Type = ActionType.HAND_SWIPE_LEFT;

            target.Triggers.Add(modalityEvent);

            ModalityEvent newModalityEvent = new ModalityEvent();
            newModalityEvent.Type = ActionType.HAND_SWIPE_RIGHT;

            Assert.AreEqual(false, target.HasEvent(newModalityEvent));
            target.SetNewEvent(newModalityEvent);

            Assert.AreEqual(false, target.IsReadyToTrigger(0));
        }