Exemple #1
0
        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());
        }
Exemple #2
0
        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",
            });
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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);
        }
Exemple #5
0
        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();
        }
Exemple #6
0
        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);
        }
Exemple #7
0
        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);
        }