public void OnVisitSyntaxNode_MultipleVisitsWithInterestingClass_YieldsMultipleCandidates() { // Arrange var tree = CSharpSyntaxTree.ParseText(@" public class TestClass : System.IDisposable { } "); var classNode = tree.GetRoot().DescendantNodes().OfType <ClassDeclarationSyntax>().First(); var syntaxReceiver = new SyntaxReceiver(); // Act syntaxReceiver.OnVisitSyntaxNode(classNode); syntaxReceiver.OnVisitSyntaxNode(classNode); syntaxReceiver.OnVisitSyntaxNode(classNode); // Assert Assert.Equal(3, syntaxReceiver.CandidateClasses.Count); }
public void OnVisitSyntaxNode_SyntaxWithFullyQualifiedIDisposableBase_AddsSingleCandidate() { // Arrange var tree = CSharpSyntaxTree.ParseText(@" public class TestClass : System.IDisposable { } "); var classNode = tree.GetRoot().DescendantNodes().OfType <ClassDeclarationSyntax>().First(); var syntaxReceiver = new SyntaxReceiver(); // Act syntaxReceiver.OnVisitSyntaxNode(classNode); // Assert Assert.Single(syntaxReceiver.CandidateClasses); }
public void OnVisitSyntaxNode_SyntaxWithUninterestingBase_FindsNoCandidates() { // Arrange var tree = CSharpSyntaxTree.ParseText(@" public class TestClass : IEnumerable { } "); var classNode = tree.GetRoot().DescendantNodes().OfType <ClassDeclarationSyntax>().First(); var syntaxReceiver = new SyntaxReceiver(); // Act syntaxReceiver.OnVisitSyntaxNode(classNode); // Assert Assert.False(syntaxReceiver.CandidateClasses.Any()); }