public void AddOneEffectTrigger() { MultimodalEngine target = new MultimodalEngine(); var modalityEvent = new Mock<ModalityEvent>(); var effect = new Mock<IEffect>(); EffectTrigger effectTrigger = new EffectTrigger(); target.addNewTrigger(effectTrigger); Assert.IsTrue(target.Triggers.Contains(effectTrigger)); }
public void AddOneEffectTriggerAndTriggerIt() { MultimodalEngine target = new MultimodalEngine(); ModalityEvent modalityEvent = new ModalityEvent(); modalityEvent.Type = ActionType.HAND_SWIPE_LEFT; var effect = new Mock<IEffect>(); //Define trigger with one input modality event that triggers one effect EffectTrigger effectTrigger = new EffectTrigger(); effectTrigger.Effects.Add(effect.Object); effectTrigger.Triggers.Add(modalityEvent); target.addNewTrigger(effectTrigger); //Prepare future event ModalityEvent action = new ModalityEvent(); action.Type = ActionType.HAND_SWIPE_LEFT; //trigger it target.NewInputModalityEvent(action); //Verify triggering effect.Verify(foo => foo.execute()); }
public void AVoiceCommandShouldNotTriggerWithoutPostureDirectionTest() { var mock = new Mock<Clock>(); var timeInMilliseconds = 0; mock.Setup(foo => foo.CurrentTimeInMillis()) .Returns(() => timeInMilliseconds); MultimodalEngine target = new MultimodalEngine(); target.ClockInstance = mock.Object; ModalityEvent modalityEvent1 = new ModalityEvent(); modalityEvent1.Type = ActionType.POSTURE_DIRECTION_KINECT; ModalityEvent modalityEvent2 = new ModalityEvent(); modalityEvent2.Type = ActionType.SPEECH_NEXT; var effect = new Mock<IEffect>(); //Define trigger with one input modality event that triggers one effect EffectTrigger effectTrigger = new EffectTrigger(); effectTrigger.Effects.Add(effect.Object); effectTrigger.Triggers.Add(modalityEvent1); effectTrigger.Triggers.Add(modalityEvent2); effectTrigger.TimeWindow = 1000; target.addNewTrigger(effectTrigger); ModalityEvent action2 = new ModalityEvent(); action2.Type = ActionType.SPEECH_NEXT; action2.EventTime = 1500; timeInMilliseconds = 1600; target.NewInputModalityEvent(action2); effect.Verify(foo => foo.execute(), Times.Never()); }
public void AddComposedTriggerEffectAndDontTriggerItWithTimeContrainst() { var mock = new Mock<Clock>(); var timeInMilliseconds = 0; mock.Setup(foo => foo.CurrentTimeInMillis()) .Returns(() => timeInMilliseconds); MultimodalEngine target = new MultimodalEngine(); target.ClockInstance = mock.Object; ModalityEvent modalityEvent1 = new ModalityEvent(); modalityEvent1.Type = ActionType.HAND_SWIPE_LEFT; ModalityEvent modalityEvent2 = new ModalityEvent(); modalityEvent2.Type = ActionType.HAND_SWIPE_RIGHT; var effect = new Mock<IEffect>(); //Define trigger with one input modality event that triggers one effect EffectTrigger effectTrigger = new EffectTrigger(); effectTrigger.Effects.Add(effect.Object); effectTrigger.Triggers.Add(modalityEvent1); effectTrigger.Triggers.Add(modalityEvent2); effectTrigger.TimeWindow = 1000; target.addNewTrigger(effectTrigger); //Prepare future event1 ModalityEvent action1 = new ModalityEvent(); action1.Type = ActionType.HAND_SWIPE_LEFT; action1.EventTime = 1000; timeInMilliseconds = 1001; target.NewInputModalityEvent(action1); //Was not trigger yet effect.Verify(foo => foo.execute(), Times.Never()); //Prepare future event2 ModalityEvent action2 = new ModalityEvent(); action2.Type = ActionType.HAND_SWIPE_RIGHT; action2.EventTime = 3001; timeInMilliseconds = 3001; target.NewInputModalityEvent(action2); effect.Verify(foo => foo.execute(), Times.Never()); }
public void AddOneEffectTriggerAndDontTriggerItTimeHasPassed() { var mock = new Mock<Clock>(); var timeInMilliseconds = 0; mock.Setup(foo => foo.CurrentTimeInMillis()) .Returns(() => timeInMilliseconds); MultimodalEngine target = new MultimodalEngine(); target.ClockInstance = mock.Object; ModalityEvent modalityEvent = new ModalityEvent(); modalityEvent.Type = ActionType.HAND_SWIPE_LEFT; var effect = new Mock<IEffect>(); //Define trigger with one input modality event that triggers one effect EffectTrigger effectTrigger = new EffectTrigger(); effectTrigger.Effects.Add(effect.Object); effectTrigger.Triggers.Add(modalityEvent); effectTrigger.TimeWindow = 1000; target.addNewTrigger(effectTrigger); //Prepare future event ModalityEvent action = new ModalityEvent(); action.Type = ActionType.HAND_SWIPE_LEFT; action.EventTime = 1000; //trigger it timeInMilliseconds = 3000; target.NewInputModalityEvent(action); //Verify triggering effect.Verify(foo => foo.execute(), Times.Never()); }
public void AddOneTriggerAndTriggersOnCorrectTimePassed() { MultimodalEngine target = new MultimodalEngine(); ModalityEvent modalityEvent = new ModalityEvent(); modalityEvent.Type = ActionType.HAND_SWIPE_LEFT; var effect = new Mock<IEffect>(); //Define trigger with one input modality event that triggers one effect EffectTrigger effectTrigger = new EffectTrigger(); effectTrigger.Effects.Add(effect.Object); effectTrigger.Triggers.Add(modalityEvent); target.addNewTrigger(effectTrigger); //Prepare future event ModalityEvent action = new ModalityEvent(); action.Type = ActionType.HAND_SWIPE_RIGHT; //add event target.NewInputModalityEvent(action); }
public void AddComposedTriggerEffectAndTriggerIt() { MultimodalEngine target = new MultimodalEngine(); ModalityEvent modalityEvent1 = new ModalityEvent(); modalityEvent1.Type = ActionType.HAND_SWIPE_LEFT; ModalityEvent modalityEvent2 = new ModalityEvent(); modalityEvent2.Type = ActionType.HAND_SWIPE_RIGHT; var effect = new Mock<IEffect>(); //Define trigger with one input modality event that triggers one effect EffectTrigger effectTrigger = new EffectTrigger(); effectTrigger.Effects.Add(effect.Object); effectTrigger.Triggers.Add(modalityEvent1); effectTrigger.Triggers.Add(modalityEvent2); target.addNewTrigger(effectTrigger); //Prepare future event1 ModalityEvent action1 = new ModalityEvent(); action1.Type = ActionType.HAND_SWIPE_LEFT; action1.EventTime = 1000; target.NewInputModalityEvent(action1); //Was not trigger yet effect.Verify(foo => foo.execute(), Times.Never()); //Prepare future event2 ModalityEvent action2 = new ModalityEvent(); action2.Type = ActionType.HAND_SWIPE_RIGHT; target.NewInputModalityEvent(action2); effect.Verify(foo => foo.execute()); }