private DuplicateFinder GetMockLanguageDuplicateFinder(IEnumerable <FileContent> fileContents)
        {
            var language   = new MockLanguage();
            var parameters = new DuplicateFindParameters(3, language);

            return(new DuplicateFinder(fileContents, parameters));
        }
Exemple #2
0
        private void ExecuteSearchDuplicates(CodeAnalyzerParameters parameters)
        {
            if (!Directory.Exists(_workingFolder))
            {
                Directory.CreateDirectory(_workingFolder);
            }
            int svnRevision             = GetCurrentSvnRevision(parameters.Directory);
            var language                = new CSharpLanguage();
            var fileContents            = GetFolderContents(parameters.Directory, parameters.SearchFilter, language.PreliminaryProcess);
            var duplicateFindParameters = new DuplicateFindParameters(6, new CSharpLanguage());
            var filesCombiner           = new DuplicateFinder(fileContents, duplicateFindParameters);
            var result = filesCombiner.FindDuplicates();
            var folder = Path.Combine(_workingFolder, svnRevision.ToString());

            if (!Directory.Exists(folder))
            {
                Directory.CreateDirectory(folder);
            }
            if (!CommitsList.Contains(svnRevision.ToString()))
            {
                File.AppendAllText(CommitsFileName, svnRevision + "\n");
                CommitsList.Add(svnRevision.ToString());
            }
            var reportFileName = Path.Combine(folder, "duplicate.xml");

            File.WriteAllText(reportFileName, result.ToXml());

            var previousReport = Path.Combine(_workingFolder, GetPreviousSvnRevision().ToString(),
                                              "duplicate.xml");

            Console.WriteLine("Lines: " + result.Count);
            CreateHtmlReport(result);
        }
        public void LowerLimitTest()
        {
            //given
            var fileContents = new List <FileContent>
            {
                new FileContent("1.txt", new List <string> {
                    "aaa", "bbb", "ccc", "ddd", "eee"
                }),
                new FileContent("2.txt", new List <string> {
                    "aaaa", "eeee", "bbb", "ccc", "ddd", "zzzz"
                })
            };
            var parameters = new DuplicateFindParameters {
                NumberOfLinesLowerLimit = 4
            };
            //when
            var filesCombiner = new DuplicateFinder(fileContents, parameters);
            var result        = filesCombiner.FindDuplicates();

            //then
            Assert.That(result.Count, Is.EqualTo(0));
        }