コード例 #1
0
        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"
            }));
        }
コード例 #2
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);
        }