ArchiMetrics.Analysis.Tests.Metrics.CyclomaticComplexityCounterTests.GivenACyclomaticComplexityAnalyzer.MethodHasExpectedComplexity C# (CSharp) Метод

MethodHasExpectedComplexity() приватный Метод

private MethodHasExpectedComplexity ( string method, int expectedComplexity ) : void
method string
expectedComplexity int
Результат void
            public void MethodHasExpectedComplexity(string method, int expectedComplexity)
            {
                var tree = CSharpSyntaxTree.ParseText(method);
                var compilation = CSharpCompilation.Create(
                    "x",
                    syntaxTrees: new[] { tree },
                    references: new MetadataReference[] { MetadataReference.CreateFromFile(typeof(object).Assembly.Location), MetadataReference.CreateFromFile(typeof(Task).Assembly.Location) },
                    options: new CSharpCompilationOptions(OutputKind.DynamicallyLinkedLibrary, usings: new[] { "System", "System.Threading.Tasks" }));

                var model = compilation.GetSemanticModel(tree, true);
                var syntaxNode = tree
                    .GetRoot()
                    .DescendantNodes()
                    .OfType<MethodDeclarationSyntax>()
                    .First();

                var metrics = new m.Metrics();
                var timer = metrics.Timer(
                    typeof(ProjectMetricTests),
                    "TestTimer",
                    m.TimeUnit.Milliseconds,
                    m.TimeUnit.Microseconds);

                var result = timer.Time(() => _counter.Calculate(syntaxNode, model));

                Assert.Equal(expectedComplexity, result);
            }