예제 #1
0
        public void DetectSqlDialects(Language language)
        {
            var testFolder = Path.Combine(TestUtility.GrammarsDirectory, language.ToString().ToLowerInvariant(),
                                          "examples");
            var directoryCodeRepository = new DirectorySourceRepository(testFolder);
            var fileNames = directoryCodeRepository.GetFileNames();

            int totalFilesCount     = 0;
            int ambiguousFilesCount = 0;

            foreach (var fileName in fileNames)
            {
                TextFile        textFile = new TextFile(File.ReadAllText(fileName), fileName);
                List <Language> sqls     = SqlDialectDetector.Detect(textFile);

                if (sqls.Count > 1)
                {
                    Console.WriteLine($"{fileName} has been recognized as {string.Join(", ", sqls)}");
                    ambiguousFilesCount++;
                }

                totalFilesCount++;

                CollectionAssert.Contains(sqls, language, $"File {fileName} has not been detected as {language}");
            }

            Console.WriteLine($"Ambiguous files count: {ambiguousFilesCount}");
            Console.WriteLine($"Total files count: {totalFilesCount}");
        }
예제 #2
0
        public void AggregateFiles_TestProject_CorrectCountAndRelativePaths()
        {
            string rootPath   = Path.Combine(TestUtility.TestsDataPath, "Test Project");
            var    repository = new DirectorySourceRepository(rootPath, languages: Language.CSharp);
            var    fileNames  = repository.GetFileNames().Select(fileName => repository.ReadFile(fileName)).ToArray();

            Assert.AreEqual(7, fileNames.Length);

            Assert.IsNotNull(fileNames.SingleOrDefault(f =>
                                                       f.Name == "1.cs" && f.RelativePath == "" && f.FullName == Path.Combine(rootPath, "1.cs")));
            Assert.IsNotNull(fileNames.SingleOrDefault(f =>
                                                       f.Name == "1.cs" && f.RelativePath == "Folder" && f.FullName == Path.Combine(rootPath, "Folder", "1.cs")));
        }