public void ShouldReturnAllFilesNamesAndDummyHash() { var fsl = new Mock <IFilesystemLayer>(); var fnc = new Mock <IFilenamesCollector>(); fnc.Setup(m => m.ReturnAllFilenamesInBasePathAndSubfolders(It.IsAny <string>())) .Returns(new List <string>() { "file1.txt", "file2.txt" }); var hashProvider = new Mock <IContentHashingProvider>(); hashProvider.Setup(m => m.GetContentOfFileAndHashIt(It.IsAny <string>())).Returns("123"); var fic = new FileInfoCollector(fsl.Object, fnc.Object, hashProvider.Object); var result = fic.CollectFileInfos("dummyPath"); Assert.IsInstanceOfType(result, typeof(List <FileInfoCollector.FileInformations>)); Assert.IsTrue(result.Count == 2); Assert.IsTrue(result.Contains(new FileInfoCollector.FileInformations() { FilePath = "file1.txt", Hash = "123" })); Assert.IsTrue(result.Contains(new FileInfoCollector.FileInformations() { FilePath = "file2.txt", Hash = "123" })); }
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); }