示例#1
0
        public void ReportForEmptyListReturnMessage()
        {
            Mock <IModificationItemToStringConverter> i2s = I2SSetup();
            Mock <ILineBreaker> ilbMock = LineBreakerMock();
            var report         = new FileModificationsReport(null, i2s.Object, ilbMock.Object);
            var expectedResult = "No change.";

            var result = report.Get();

            Assert.AreEqual(expectedResult, result);
        }
示例#2
0
        public void ReportForItemsReturnCorrectList()
        {
            Mock <IModificationItemToStringConverter> i2s = I2SSetup();
            List <PerFileModification> input = new List <PerFileModification>()
            {
                new PerFileModification(), new PerFileModification()
            };
            Mock <ILineBreaker> ilbMock = LineBreakerMock();
            var report         = new FileModificationsReport(input, i2s.Object, ilbMock.Object);
            var expectedResult = converterOutput + converterOutput;

            var result = report.Get();

            Assert.AreEqual(expectedResult, result);
        }
示例#3
0
        public OutputReport Run(string path)
        {
            OutputReport report;

            try
            {
                var logFileNameProvider           = new DefaultLogFileNameProvider();
                var logFileRemover                = new LogFileItemRemover(logFileNameProvider);
                var currentFileInfo               = new FileInfoCollector(_fsl).CollectFileInfos(path);
                var currentFileInfoWithoutLogFile = logFileRemover.Remove(currentFileInfo);
                try
                {
                    var fileInfoFromLog = new LogInfoGatherer(_fsl, logFileNameProvider).GetFileInfoLogFromPath(path);
                    var fileInfoFromLogWithouLogFile = logFileRemover.Remove(fileInfoFromLog);
                    var pairedFileInfos =
                        new InfoPairer(new PairCreator(new FilenamePicker()), new CompareFileInfoOnPath()).Pair(
                            currentFileInfoWithoutLogFile, fileInfoFromLogWithouLogFile);
                    var fileModificationsList =
                        new FileModificationsListCreator(new ModificationClassificator()).CalculateFileModifications(
                            pairedFileInfos);
                    var fileModificationsListWithoutUnmodified = new UnmodifiedRemover().AlterList(fileModificationsList);
                    report = new FileModificationsReport(fileModificationsListWithoutUnmodified,
                                                         new ModificationItemToStringConverterUsingToString(), new HtmlLineBreaker());
                }
                catch (LfgLogFileDoesntExistException)
                {
                    report = new NewDirectoryReport();
                }
                new LogFileWriter(_fsl, new LogFileLinesFileInfoConverter(new LogLinesToFileInfoConverter()),
                                  logFileNameProvider).WriteLog(currentFileInfoWithoutLogFile, path);
            }
            catch (Exception ex) when(ex is FilesystemLayerException)
            {
                report = new ErrorMessageReport(ex.Message);
            }
            return(report);
        }