public async Task TestCanExecute() { Assert.IsTrue(_command.CanExecute(null), "CanExecute gibt nicht true zurück!"); // Command ausführen, sollte SLEEPTIME ms laufen, währenddessen muss CanExecute false zurückgeben _command.Execute(null); await Task.Run(() => Thread.Sleep(100)); Assert.IsFalse(_command.CanExecute(null), "CanExecute sollte während der Ausführung false sein!"); await Task.Run(() => Thread.Sleep(SLEEPTIME)); // CanExecute sollte wieder true zurückgeben, da sicher fertig Assert.IsTrue(_command.CanExecute(null), "CanExecute gibt nicht true zurück!"); }
public DirectorySelectionViewModel() { _musicConverter = new MusicLibraryConverter(); //TODO: MUST include directory validation in all these "CanExecute" commands. //For now, we enable/disable buttons based on whether the conversion command is executing or not. StartConversionCommand = new AwaitableDelegateCommand(StartConversion_Async); CancelConversionCommand = new DelegateCommand(CancelConversion, () => !StartConversionCommand.CanExecute(null)); ChooseSourceCommand = new DelegateCommand(ChooseSource, () => StartConversionCommand.CanExecute(null)); ChooseTargetCommand = new DelegateCommand(ChooseTarget, () => StartConversionCommand.CanExecute(null)); CloseApplicationCommand = new DelegateCommand(() => Application.Current.MainWindow.Close()); StartOverCommand = new DelegateCommand(StartApplicationOver); CurrentApplicationState = ApplicationState.Starting; }