public void PreprocessorDirectives()
{
SyntaxTree tree = SyntaxTree.ParseText(@"#if true
class A { }
#else
class B { }
#endif");
SyntaxToken eof = tree.GetRoot().FindToken(tree.GetText().Length, false);
Assert.AreEqual(true, eof.HasLeadingTrivia);
Assert.AreEqual(false, eof.HasTrailingTrivia);
Assert.AreEqual(true, eof.ContainsDirectives);
SyntaxTriviaList trivia = eof.LeadingTrivia;
Assert.AreEqual(3, trivia.Count);
Assert.AreEqual("#else", trivia[0].ToString());
Assert.AreEqual(SyntaxKind.DisabledTextTrivia, trivia[1].Kind);
Assert.AreEqual("#endif", trivia[2].ToString());
DirectiveTriviaSyntax directive = tree.GetRoot().GetLastDirective();
Assert.AreEqual("endif", directive.DirectiveNameToken.Value);
directive = directive.GetPreviousDirective();
Assert.AreEqual("else", directive.DirectiveNameToken.Value);
// List<DirectiveSyntax> relatedDirectives = directive.GetRelatedDirectives();
// Assert.AreEqual(3, relatedDirectives.Count);
}