public void CalculateFileModificationsReturnsEmptyListOnEmptyInput() { var mc = new Mock <IModificationClassificator>(); mc.Setup(m => m.Classify(It.IsAny <InfoPair>())).Returns(new PerFileModification()); var fmc = new FileModificationsListCreator(mc.Object); var input = new List <InfoPair>(); var result = fmc.CalculateFileModifications(input); Assert.IsInstanceOfType(result, typeof(List <PerFileModification>)); Assert.IsTrue(result.Count == 0); }
public void CalculateFileModificationsProcessesEveryItemTest() { var mc = new Mock <IModificationClassificator>(); mc.Setup(m => m.Classify(It.IsAny <InfoPair>())).Returns(new PerFileModification()); var fmc = new FileModificationsListCreator(mc.Object); var input = new List <InfoPair>() { new InfoPair(), new InfoPair() }; var result = fmc.CalculateFileModifications(input); Assert.IsInstanceOfType(result, typeof(List <PerFileModification>)); Assert.IsTrue(result.Count == 2); }
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); }