public void Multiple_shortcuts_observer_should_be_notified_about_different_events() { //Arrange var shortcutObserver = new MultipleShortcutsObserver(); Fixture.ShortcutDetector.RegisterShortcut(new CtrlAltDel()); Fixture.ShortcutDetector.RegisterShortcut(new CtrlAltDigitPermutation()); Fixture.ShortcutDetector.Subscribe(shortcutObserver); //Act Fixture.Press(Key.LeftCtrl); Fixture.Press(Key.LeftAlt); Fixture.Press(Key.Delete); Fixture.Release(Key.Delete); Fixture.Press(Key.D7); Fixture.Release(Key.D7); //Assert shortcutObserver.CtrlAltDelPressedCounter.Should().Be(1); shortcutObserver.CtrlAltDelReleasedCounter.Should().Be(1); shortcutObserver.CtrlAltDigitPressedCounter.Should().Be(1); shortcutObserver.CtrlAltDigitReleasedCounter.Should().Be(1); shortcutObserver.LastPressedDigitKey[0].Should().Be(Key.D7); shortcutObserver.LastReleasedDigitKey[0].Should().Be(Key.D7); }
public void Should_throw_on_subscribing_observer_when_shortcut_is_not_registered() { //Arrange var shortcutObserver = new MultipleShortcutsObserver(); Fixture.ShortcutDetector.RegisterShortcut(new CtrlAltDel()); //Act & Assert Action subscription = () => Fixture.ShortcutDetector.Subscribe(shortcutObserver); subscription.ShouldThrow <Exception>(); }