public async Task TestAnalyzer() { string projectPath = string.Concat(GetTstPath(Path.Combine(new[] { "Projects", "CodelyzerDummy", "CodelyzerDummy" })), ".csproj"); AnalyzerConfiguration configuration = new AnalyzerConfiguration(LanguageOptions.CSharp) { ExportSettings = { GenerateJsonOutput = true, GenerateGremlinOutput = false, GenerateRDFOutput = false, OutputPath = @"/tmp/UnitTests" }, MetaDataSettings = { LiteralExpressions = true, MethodInvocations = true, Annotations = true, DeclarationNodes = true, LocationData = true, ReferenceData = true, LoadBuildData = true } }; CodeAnalyzer analyzer = CodeAnalyzerFactory.GetAnalyzer(configuration, NullLogger.Instance); using AnalyzerResult result = await analyzer.AnalyzeProject(projectPath); Assert.True(result != null); }
public async Task TestAnalysis() { string projectPath = string.Concat(GetTstPath(Path.Combine(new string[] { "Projects", "CodelyzerDummy", "CodelyzerDummy" })), ".csproj"); AnalyzerConfiguration configuration = new AnalyzerConfiguration(LanguageOptions.CSharp) { ExportSettings = { GenerateJsonOutput = true, OutputPath = @"/tmp/UnitTests" }, MetaDataSettings = { LiteralExpressions = true, MethodInvocations = true, Annotations = true, LambdaMethods = true, DeclarationNodes = true, LocationData = true, ReferenceData = true, LoadBuildData = true } }; CodeAnalyzer analyzer = CodeAnalyzerFactory.GetAnalyzer(configuration, NullLogger.Instance); AnalyzerResult result = await analyzer.AnalyzeProject(projectPath); Assert.False(result.ProjectBuildResult.IsSyntaxAnalysis); Assert.True(result != null); // Extract the subject node var testClassRootNode = result.ProjectResult.SourceFileResults .First(s => s.FileFullPath.EndsWith("Class2.cs")) as UstNode; // Nested class is found Assert.AreEqual(1, testClassRootNode.AllClasses().Count(c => c.Identifier == "NestedClass")); // Chained method is found Assert.AreEqual(1, testClassRootNode.AllInvocationExpressions().Count(c => c.MethodName == "ChainedMethod")); // Constructor is found Assert.AreEqual(1, testClassRootNode.AllConstructors().Count); }