public async Task Should_FlattenConfigsFound() { // Arrange var fs = new MockFileSystem(new Dictionary <string, MockFileData> { { "C:/A/wtfd.json", MockData.NestedConfig(isRoot: true).config.ToMockFileData() }, { "C:/A/B/wtfd.json", MockData.FlatConfig().config.ToMockFileData() }, }, "C:/A/B/"); MockData.AddDirectories(fs); var finder = new FindCommandHandler(fs); // Act var result = await finder.Handle(new FindRequest(), CancellationToken.None); var flatten = result.Configurations.SelectMany(c => c.FlattenDocs.Value); var patterns = flatten.Select(i => i.Pattern.ToPosixPath()); // Assert patterns.Should().BeEquivalentTo(new[] { "C:/A/B/", "C:/A/B/B/", "C:/A/B/C/", "C:/A/", "C:/A/B/", "C:/A/C/", "C:/A/D/", "C:/A/D/D1/", }.ToPosixPath()); }
public async Task Should_StopAtIsRoot() { // Arrange var fs = new MockFileSystem(new Dictionary <string, MockFileData> { { "C:/A/wtfd.json", MockData.EmptyConfig().ToMockFileData() }, { "C:/A/D/wtfd.json", MockData.RootConfig().ToMockFileData() }, { "C:/A/D/D1/wtfd.json", MockData.EmptyConfig().ToMockFileData() }, }, "C:/A/D/D1/"); MockData.AddDirectories(fs); var finder = new FindCommandHandler(fs); // Act var result = await finder.Handle(new FindRequest(), CancellationToken.None); // Assert result.Configurations.Select(c => c.Path.ToPosixPath()).Should().BeEquivalentTo(new[] { "C:/A/D/D1/wtfd.json", "C:/A/D/wtfd.json", }); }
private static ICommandHandler CreateCommandHandlers() { Action <IEnumerable <FileCabinetRecord> > printer; printer = DefaultRecordPrint; var recordPrinter = new DefaultRecordPrinter(); var createHandler = new CreateCommandHandler(Program.fileCabinetService); var editHandler = new EditCommandHandler(Program.fileCabinetService); var exitHandler = new ExitCommandHandler(stopProgram); var exportHandler = new ExportCommandHandler(Program.fileCabinetService); var findHandler = new FindCommandHandler( Program.fileCabinetService, printer); var helpHandler = new HelpCommandHandler(); var importHandler = new ImportCommandHandler(Program.fileCabinetService); var listHandler = new ListCommandHandler( Program.fileCabinetService, printer); var purgeHandler = new PurgeCommandHandler(Program.fileCabinetService); var removeHandler = new RemoveCommandHandler(Program.fileCabinetService); var statHandler = new StatCommandHandler(Program.fileCabinetService); var defaultHandler = new DefaultHandler(); createHandler.SetNext(editHandler); editHandler.SetNext(exitHandler); exitHandler.SetNext(exportHandler); exportHandler.SetNext(findHandler); findHandler.SetNext(helpHandler); helpHandler.SetNext(importHandler); importHandler.SetNext(listHandler); listHandler.SetNext(purgeHandler); purgeHandler.SetNext(removeHandler); removeHandler.SetNext(statHandler); statHandler.SetNext(defaultHandler); return(createHandler); }
private static ICommandHandler CreateCommandHandlers() { var helpHandler = new HelpCommandHandler(); var createHandler = new CreateCommandHandler(fileCabinetService, isCustomValidationRules); var editHandler = new EditCommandHandler(fileCabinetService, isCustomValidationRules); var exitHandler = new ExitCommandHandler(setProgramStatus); var exporthandler = new ExportCommandHandler(fileCabinetService); var findHandler = new FindCommandHandler(fileCabinetService, DefaultRecordPrint); var importHandler = new ImportCommandHandler(fileCabinetService); var listHandler = new ListCommandHandler(fileCabinetService, DefaultRecordPrint); var purgeHandler = new PurgeCommandHandler(fileCabinetService); var removeHandler = new RemoveCommandHandler(fileCabinetService); var statHandler = new StatCommandHandler(fileCabinetService); helpHandler.SetNext(createHandler); createHandler.SetNext(editHandler); editHandler.SetNext(exitHandler); exitHandler.SetNext(exporthandler); exporthandler.SetNext(findHandler); findHandler.SetNext(importHandler); importHandler.SetNext(listHandler); listHandler.SetNext(purgeHandler); purgeHandler.SetNext(removeHandler); removeHandler.SetNext(statHandler); return(helpHandler); }
public async Task Should_ReturnNothing_When_NoConfigFiles(string currentDir) { // Arrange var fs = new MockFileSystem(new Dictionary <string, MockFileData>(), currentDir); MockData.AddDirectories(fs); var finder = new FindCommandHandler(fs); // Act var result = await finder.Handle(new FindRequest(), CancellationToken.None); // Assert result.Configurations.Select(c => c.Path).Should().BeEmpty(); }
private static ICommandHandler CreateCommandHandlers() { IRecordPrinter recordPrinter = new DefaultRecordPrinter(); var create = new CreateCommandHandler(fileCabinetService); var exit = new ExitCommandHandler(Exit); var stat = new StatCommanHandler(fileCabinetService); var help = new PrintHelpCommandHandler(); var edit = new EditCommandHandler(fileCabinetService); var find = new FindCommandHandler(fileCabinetService, DefaultRecordPrint); var export = new ExportCommandHandler(fileCabinetService); var import = new ImportCommandHandler(fileCabinetService); var remove = new RemoveCommandHandler(fileCabinetService); var purge = new PurgeCommandHandler(fileCabinetService); create.SetNext(exit).SetNext(stat).SetNext(edit).SetNext(find).SetNext(export).SetNext(import).SetNext(remove).SetNext(purge).SetNext(help); return(create); }
public async Task Should_Return_AllConfigFilesFound(string currentDir, string[] expected) { // Arrange var fs = new MockFileSystem(new Dictionary <string, MockFileData> { { "C:/A/wtfd.json", MockData.EmptyConfig().ToMockFileData() }, { "C:/A/B/wtfd.json", MockData.EmptyConfig().ToMockFileData() }, { "C:/A/D/D1/wtfd.json", MockData.EmptyConfig().ToMockFileData() }, }, currentDir); MockData.AddDirectories(fs); var finder = new FindCommandHandler(fs); // Act var result = await finder.Handle(new FindRequest(), CancellationToken.None); // Assert result.Configurations.Select(c => c.Path.ToPosixPath()).Should().BeEquivalentTo(expected); }