public void UpdateMultipleFrames_DoubleTapAndHold_SequenceCompletes() { bool done = false; var clock = new FakeClock(); Action callback = () => done = true; var sequence = new KeyboardSequenceDetector( clock, callback, new[] { new KeyFrame(Key.RightCtrl, true, 0), new KeyFrame(Key.RightCtrl, false, 100), new KeyFrame(Key.RightCtrl, true, 200), new KeyFrame(Key.RightCtrl, true, 300), }); sequence.Update(Key.RightCtrl, true); clock.Elapsed = TimeSpan.FromMilliseconds(100); sequence.Update(Key.RightCtrl, false); clock.Elapsed = TimeSpan.FromMilliseconds(200); sequence.Update(Key.RightCtrl, true); clock.Elapsed = TimeSpan.FromMilliseconds(300); sequence.Update(Key.RightCtrl, true); Assert.That(done, Is.True); }
public void UpdateSingleFrame_OthertKey_DoesNotCompletesSequence() { var done = false; var clock = new FakeClock(); Action callback = () => done = true; var sequence = new KeyboardSequenceDetector( clock, callback, new[] { new KeyFrame(Key.RightCtrl, true, 0), }); sequence.Update(Key.Space, true); Assert.That(done, Is.False); }
public void UpdateMultipleFrames_CorrectInput_CompletesSequence() { bool done = false; var clock = new FakeClock(); Action callback = () => done = true; var sequence = new KeyboardSequenceDetector( clock, callback, new[] { new KeyFrame(Key.RightCtrl, true, 0), new KeyFrame(Key.RightCtrl, false, 0), }); sequence.Update(Key.RightCtrl, true); sequence.Update(Key.RightCtrl, false); Assert.That(done, Is.True); }
public void UpdateSingleFrame_CalledManyTimes_CanBeReused() { int done = 0; var clock = new FakeClock(); Action callback = () => done++; var sequence = new KeyboardSequenceDetector( clock, callback, new[] { new KeyFrame(Key.RightCtrl, true, 0), }); sequence.Update(Key.RightCtrl, true); sequence.Update(Key.RightCtrl, true); sequence.Update(Key.RightCtrl, true); sequence.Update(Key.RightCtrl, true); Assert.That(done, Is.EqualTo(4)); }
public void UpdateMultipleFrames_CorrectInputWithinTime_CompletesSequence() { bool done = false; var clock = new FakeClock(); Action callback = () => done = true; var sequence = new KeyboardSequenceDetector( clock, callback, new[] { new KeyFrame(Key.RightCtrl, true, 0), new KeyFrame(Key.RightCtrl, false, 100), }); sequence.Update(Key.RightCtrl, true); clock.Elapsed = TimeSpan.FromMilliseconds(99); sequence.Update(Key.RightCtrl, false); Assert.That(done, Is.True); }