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("フォルダ指定ダイアログがキャンセルされたら、ファイルが読まれないはず");
    }