public void SetsInvisible() { var viewModel = Mock.Of <IViewModel>(); var command = new DeactivatedCommand(viewModel); command.Execute(null); Mock.Get(viewModel).VerifySet(x => x.IsVisible = false); }
public BeamgunViewModel() { var dictionary = new RegistryBackedDictionary(); var beamgunSettings = new BeamgunSettings(dictionary); BeamgunState = new BeamgunState(beamgunSettings) { MainWindowVisibility = Visibility.Hidden }; // TODO: This bi-directional relationship feels bad. dictionary.BadCastReport += BeamgunState.AppendToAlert; BeamgunState.Disabler = new Disabler(BeamgunState); BeamgunState.Disabler.Enable(); DisableCommand = new DisableCommand(this, beamgunSettings); TrayIconCommand = new TrayIconCommand(this); LoseFocusCommand = new DeactivatedCommand(this); ResetCommand = new ResetCommand(this); ExitCommand = new ExitCommand(this); ClearAlertsCommand = new ClearAlertsCommand(this); _keystrokeHooker = InstallKeystrokeHooker(); _usbStorageGuard = InstallUsbStorageGuard(beamgunSettings); _alarm = InstallAlarm(beamgunSettings); _networkWatcher = new NetworkWatcher(beamgunSettings, new NetworkAdapterDisabler(), x => BeamgunState.AppendToAlert(x), x => { _alarm.Trigger(x); BeamgunState.SetGraphicsLanAlert(); }, () => BeamgunState.Disabler.IsDisabled); _keyboardWatcher = new KeyboardWatcher(beamgunSettings, new WorkstationLocker(), x => BeamgunState.AppendToAlert(x), x => { _alarm.Trigger(x); BeamgunState.SetGraphicsKeyboardAlert(); }, () => BeamgunState.Disabler.IsDisabled); _mouseWatcher = new MouseWatcher(beamgunSettings, new WorkstationLocker(), x => BeamgunState.AppendToAlert(x), x => { _alarm.Trigger(x); BeamgunState.SetGraphicsMouseAlert(); }, () => BeamgunState.Disabler.IsDisabled); var checker = new VersionChecker(); _updateTimer = new VersionCheckerTimer(beamgunSettings, checker, x => BeamgunState.AppendToAlert(x)); }
public void IsExecutable() { var command = new DeactivatedCommand(Mock.Of <IViewModel>()); command.CanExecute(null).ShouldBeTrue(); }
public BeamgunViewModel(Window mainWindow) { BeamgunState = new BeamgunState { MainWindowVisibility = Visibility.Hidden }; BeamgunState.Disabler = new Disabler(BeamgunState); BeamgunState.Disabler.Enable(); DisableCommand = new DisableCommand(this); TrayIconCommand = new TrayIconCommand(this); LoseFocusCommand = new DeactivatedCommand(this); ResetCommand = new ResetCommand(this); ExitCommand = new ExitCommand(this); _workstationLocker = new WorkstationLocker(); const uint repeatInterval = 10; var converter = new KeyConverter(); _keystrokeHooker = new KeystrokeHooker(); _alarm = new Alarm(repeatInterval, BeamgunState); _alarm.AlarmCallback += () => { BeamgunState.MainWindowState = WindowState.Normal; BeamgunState.MainWindowVisibility = Visibility.Visible; BeamgunState.SetGraphicsAlert(); if (BeamgunState.StealFocus) { StealFocus(); } }; var windowHandle = new WindowInteropHelper(mainWindow).Handle; _usbMonitor = new UsbMonitor(windowHandle); _usbMonitor.DeviceAdded += () => { BeamgunState.AppendToAlert("USB device inserted."); _alarm.Trigger("Alerting on USB device insertion."); if (!BeamgunState.LockWorkStation) { return; } var result = _workstationLocker.Lock(); var message = result ? "Successfully locked the workstation." : "Could not lock the workstation."; BeamgunState.AppendToAlert(message); }; _usbMonitor.DeviceRemoved += () => { BeamgunState.AppendToAlert("USB device removed."); }; _keystrokeHooker.Callback += key => { if (!_alarm.Triggered) { return; } BeamgunState.AppendToKeyLog(converter.Convert(key)); }; }