private void AssertGeneratedFileDesc(GeneratedFileDescription fileDesc, string fileName, string namespaceName, string className, string[] methodNames) { Assert.True(fileDesc.Name == fileName); SyntaxNode root = CSharpSyntaxTree.ParseText(fileDesc.Text).GetRoot(); ClassDeclarationSyntax[] classes = root.DescendantNodes().OfType <ClassDeclarationSyntax>().ToArray(); Assert.True(classes.Length == 1); ClassDeclarationSyntax clazz = classes[0]; Assert.True(clazz.Identifier.ValueText == className); Assert.True((clazz.Parent as NamespaceDeclarationSyntax)?.Name?.ToString() == namespaceName); MethodDeclarationSyntax[] methods = clazz.DescendantNodes().OfType <MethodDeclarationSyntax>().ToArray(); Assert.True(methods.Length == methodNames.Length); foreach (MethodDeclarationSyntax method in methods) { Assert.Contains(method.Identifier.ValueText, methodNames); Assert.True(method.AttributeLists.Count == 1); Assert.True(method.AttributeLists.First().Attributes.First().Name.ToString() == "Fact"); } }
private static bool HasNoLiteralExpression(Microsoft.CodeAnalysis.SyntaxNode propertyDeclarationSyntax) { return(!propertyDeclarationSyntax.DescendantNodes().OfType <LiteralExpressionSyntax>().Any()); }
private static bool HasAccessorDeclarationSyntaxAsDescendantNodes(Microsoft.CodeAnalysis.SyntaxNode propertyDeclarationSyntax) { return(propertyDeclarationSyntax.DescendantNodes().OfType <AccessorDeclarationSyntax>().Any()); }