コード例 #1
0
ファイル: RulingTest.cs プロジェクト: jango2015/sonarlint-vs
        private bool FilesAreEquivalent(AnalyzerLanguage language, out List <string> problematicRules)
        {
            problematicRules = new List <string>();

            var expectedFiles = ExpectedDirectory
                                .GetDirectories(language.GetDirectoryName()).First()
                                .GetFiles("S*.json");
            var actualFiles = AnalysisOutputDirectory
                              .GetDirectories(language.GetDirectoryName()).First()
                              .GetFiles("S*.json");

            var problematicFileNames =
                expectedFiles.Select(file => file.Name)
                .ToImmutableHashSet()
                .SymmetricExcept(actualFiles.Select(file => file.Name));

            if (problematicFileNames.Any())
            {
                problematicRules.AddRange(problematicFileNames);
                return(false);
            }

            foreach (var expectedFile in expectedFiles)
            {
                var bytesExpected = File.ReadAllBytes(expectedFile.FullName);
                var bytesActual   = File.ReadAllBytes(actualFiles.Single(file => file.Name == expectedFile.Name).FullName);

                if (!StructuralComparisons.StructuralEqualityComparer.Equals(bytesExpected, bytesActual))
                {
                    problematicRules.Add(Path.GetFileNameWithoutExtension(expectedFile.Name));
                }
            }

            return(!problematicRules.Any());
        }
コード例 #2
0
ファイル: RulingTest.cs プロジェクト: jango2015/sonarlint-vs
 private void CreateMissingActualDirectory(AnalyzerLanguage language)
 {
     if (!AnalysisOutputDirectory.GetDirectories(language.GetDirectoryName()).Any())
     {
         Directory.CreateDirectory(Path.Combine(
                                       AnalysisOutputDirectory.FullName,
                                       language.GetDirectoryName()));
     }
 }