public async Task FolderDialog_Success_Invalid() { var fileSystem = AppExtension.CreateMockFileSystem(new[] { filePathA, filePathB }); var model = new MainModel(fileSystem, Scheduler.Immediate); var mainVM = new MainWindowViewModel(model); mainVM.Initialize(); await mainVM.WaitIdle().Timeout(3000d); var dialogMessage = new Livet.Messaging.IO.FolderSelectionMessage { Response = new[] { targetDirPath } }; await mainVM.LoadFilesFromDialogCommand.ExecuteAsync(dialogMessage); await mainVM.WaitIdle().Timeout(3000d); await Task.Delay(MainWindowViewModel.TimeSpanMessageBuffer * 3); mainVM.IsDialogOpen.Value .Should().BeFalse("正常にファイルを探索できたら、ダイアログは開いていないはず"); model.FileElementModels .Should().NotBeEmpty("正常にファイルを探索できたら、ファイルが読まれたはず"); dialogMessage = new Livet.Messaging.IO.FolderSelectionMessage { Response = new[] { "*invalidPath1*", "*invalidPath2*" } }; await mainVM.LoadFilesFromDialogCommand.ExecuteAsync(dialogMessage); await mainVM.IsDialogOpen.WaitShouldBe(true, 3000d, "無効なファイルパスなら、ダイアログが開いたはず"); (mainVM.DialogContentVM.Value as MessageDialogViewModel)?.AppMessage.MessageLevel .Should().Be(AppMessageLevel.Alert, "警告メッセージが表示されるはず"); model.FileElementModels .Should().BeEmpty("無効なファイルパスなら、ファイルがないはず"); }
public async Task FolderDialog_Cancel() { var fileSystem = AppExtension.CreateMockFileSystem(new[] { filePathA, filePathB }); var model = new MainModel(fileSystem, Scheduler.Immediate); var mainVM = new MainWindowViewModel(model); mainVM.Initialize(); await mainVM.WaitIdle().Timeout(3000d); var dialogMessage = new Livet.Messaging.IO.FolderSelectionMessage { Response = null }; await mainVM.LoadFilesFromDialogCommand.ExecuteAsync(dialogMessage); await mainVM.WaitIdle().Timeout(3000d); await Task.Delay(MainWindowViewModel.TimeSpanMessageBuffer * 3); mainVM.IsDialogOpen.Value .Should().BeFalse("正常にファイルを探索できたら、ダイアログは開いていないはず"); model.FileElementModels .Should().BeEmpty("フォルダ指定ダイアログがキャンセルされたら、ファイルが読まれないはず"); }