public void GetIdentifierTokenValueTextReturnsNullForInvalidNode() { // Given SyntaxTree syntaxTree = Microsoft.CodeAnalysis.CSharp.CSharpSyntaxTree.ParseText("int c = 0;", InternalsHelper.GetCSharpParseOptionsForSourceCodeKind(SourceCodeKind.Script)); SyntaxNode syntaxNode = syntaxTree.GetRoot(); // The root will never have an identifier token // When string tokenValueText = InternalsHelper.GetIdentifierTokenValueText(syntaxNode); // Then Assert.IsNull(tokenValueText); }
public void GetIdentifierTokenValueTextReturnsTokenValueTextForValidNode() { // Given SyntaxTree syntaxTree = Microsoft.CodeAnalysis.CSharp.CSharpSyntaxTree.ParseText("int c = 0;", InternalsHelper.GetCSharpParseOptionsForSourceCodeKind(SourceCodeKind.Script)); SyntaxToken syntaxToken = syntaxTree.GetRoot() .DescendantNodesAndTokens() .Where(x => x.IsToken) .Select(x => x.AsToken()) .First(x => Microsoft.CodeAnalysis.CSharp.CSharpExtensions.Kind(x) == Microsoft.CodeAnalysis.CSharp.SyntaxKind.IdentifierToken); SyntaxNode syntaxNode = syntaxToken.Parent; // When string tokenValueText = InternalsHelper.GetIdentifierTokenValueText(syntaxNode); // Then Assert.AreEqual("c", tokenValueText); }