public void AtDirectiveCompletionPoint_ReturnsFalseIfSyntaxTreeNull() { // Act var result = DirectiveCompletionItemProvider.AtDirectiveCompletionPoint(syntaxTree: null, location: new SourceSpan(0, 0)); // Assert Assert.False(result); }
public void GetDirectiveCompletionItems_ComponentDocument_DoesNotReturnsDefaultDirectivesAsCompletionItems() { // Arrange var syntaxTree = CreateSyntaxTree("@addTag", FileKinds.Component); // Act var completionItems = DirectiveCompletionItemProvider.GetDirectiveCompletionItems(syntaxTree); // Assert Assert.Empty(completionItems); }
public void IsDirectiveCompletableToken_ReturnsFalseForInvalidCSharpTokens() { // Arrange var csharpToken = SyntaxFactory.Token(SyntaxKind.Tilde, "~"); // Act var result = DirectiveCompletionItemProvider.IsDirectiveCompletableToken(csharpToken); // Assert Assert.False(result); }
public void IsDirectiveCompletableToken_ReturnsTrueForCSharpIdentifiers() { // Arrange var csharpToken = SyntaxFactory.Token(SyntaxKind.Identifier, "model"); // Act var result = DirectiveCompletionItemProvider.IsDirectiveCompletableToken(csharpToken); // Assert Assert.True(result); }
public void IsDirectiveCompletableToken_ReturnsTrueForCSharpMarkerTokens() { // Arrange var csharpToken = SyntaxFactory.Token(SyntaxKind.Marker, string.Empty); // Act var result = DirectiveCompletionItemProvider.IsDirectiveCompletableToken(csharpToken); // Assert Assert.True(result); }
public void IsDirectiveCompletableToken_ReturnsFalseForNonCSharpTokens() { // Arrange var token = SyntaxFactory.Token(SyntaxKind.Text, string.Empty); // Act var result = DirectiveCompletionItemProvider.IsDirectiveCompletableToken(token); // Assert Assert.False(result); }
public void IsDirectiveCompletableToken_ReturnsTrueForCSharpKeywords() { // If you're typing `@inject` and stop at `@in` it will be parsed as a C# Keyword instead of an identifier, so we have to allow them too // Arrange var csharpToken = SyntaxFactory.Token(SyntaxKind.Keyword, "in"); // Act var result = DirectiveCompletionItemProvider.IsDirectiveCompletableToken(csharpToken); // Assert Assert.True(result); }
public void AtDirectiveCompletionPoint_ReturnsFalseIfNoOwner() { // Arrange var syntaxTree = CreateSyntaxTree("@"); var location = new SourceSpan(2, 0); // Act var result = DirectiveCompletionItemProvider.AtDirectiveCompletionPoint(syntaxTree, location); // Assert Assert.False(result); }
public void AtDirectiveCompletionPoint_ReturnsTrueForSimpleImplicitExpressions() { // Arrange var syntaxTree = CreateSyntaxTree("@mod"); var location = new SourceSpan(2, 0); // Act var result = DirectiveCompletionItemProvider.AtDirectiveCompletionPoint(syntaxTree, location); // Assert Assert.True(result); }
public void AtDirectiveCompletionPoint_ReturnsFalseWhenInsideDirective() { // Arrange var syntaxTree = CreateSyntaxTree("@functions { @ }", FunctionsDirective.Directive); var location = new SourceSpan(14, 0); // Act var result = DirectiveCompletionItemProvider.AtDirectiveCompletionPoint(syntaxTree, location); // Assert Assert.False(result); }
public void AtDirectiveCompletionPoint_ReturnsFalseWhenInsideAttributeArea() { // Arrange var syntaxTree = CreateSyntaxTree("<p @ >"); var location = new SourceSpan(4, 0); // Act var result = DirectiveCompletionItemProvider.AtDirectiveCompletionPoint(syntaxTree, location); // Assert Assert.False(result); }
public void AtDirectiveCompletionPoint_ReturnsFalseWhenOwnerIsExplicitExpression() { // Arrange var syntaxTree = CreateSyntaxTree("@(something)"); var location = new SourceSpan(4, 0); // Act var result = DirectiveCompletionItemProvider.AtDirectiveCompletionPoint(syntaxTree, location); // Assert Assert.False(result); }
public void ShouldProvideCompletions_ReturnsFalseIfNoOwner() { // Arrange var syntaxTree = CreateSyntaxTree("@"); var location = new SourceSpan(2, 0); var context = CreateRazorCompletionContext(syntaxTree); // Act var result = DirectiveCompletionItemProvider.ShouldProvideCompletions(context, location); // Assert Assert.False(result); }
public void ShouldProvideCompletions_ReturnsFalseWhenInsideAttributeArea() { // Arrange var syntaxTree = CreateSyntaxTree("<p @ >"); var location = new SourceSpan(4, 0); var context = CreateRazorCompletionContext(syntaxTree); // Act var result = DirectiveCompletionItemProvider.ShouldProvideCompletions(context, location); // Assert Assert.False(result); }
public void ShouldProvideCompletions_ReturnsFalseWhenInsideDirective() { // Arrange var syntaxTree = CreateSyntaxTree("@functions { @ }", FunctionsDirective.Directive); var location = new SourceSpan(14, 0); var context = CreateRazorCompletionContext(syntaxTree); // Act var result = DirectiveCompletionItemProvider.ShouldProvideCompletions(context, location); // Assert Assert.False(result); }
public void ShouldProvideCompletions_ReturnsFalseWhenOwnerIsExplicitExpression() { // Arrange var syntaxTree = CreateSyntaxTree("@(something)"); var location = new SourceSpan(4, 0); var context = CreateRazorCompletionContext(syntaxTree); // Act var result = DirectiveCompletionItemProvider.ShouldProvideCompletions(context, location); // Assert Assert.False(result); }
public void ShouldProvideCompletions_ReturnsTrueForSimpleImplicitExpressions_WhenInvoked() { // Arrange var syntaxTree = CreateSyntaxTree("@mod"); var location = new SourceSpan(2, 0); var context = CreateRazorCompletionContext(syntaxTree); // Act var result = DirectiveCompletionItemProvider.ShouldProvideCompletions(context, location); // Assert Assert.True(result); }
public void GetDirectiveCompletionItems_ReturnsDefaultDirectivesAsCompletionItems() { // Arrange var syntaxTree = CreateSyntaxTree("@addTag"); // Act var completionItems = DirectiveCompletionItemProvider.GetDirectiveCompletionItems(syntaxTree); // Assert Assert.Collection( completionItems, item => AssertRazorCompletionItem(DefaultDirectives[0], item), item => AssertRazorCompletionItem(DefaultDirectives[1], item), item => AssertRazorCompletionItem(DefaultDirectives[2], item)); }
public void GetDirectiveCompletionItems_ReturnsCustomDirectivesAsCompletionItems() { // Arrange var customDirective = DirectiveDescriptor.CreateSingleLineDirective("custom", builder => builder.Description = "My Custom Directive."); var syntaxTree = CreateSyntaxTree("@addTag", customDirective); // Act var completionItems = DirectiveCompletionItemProvider.GetDirectiveCompletionItems(syntaxTree); // Assert Assert.Collection( completionItems, item => AssertRazorCompletionItem(customDirective, item), item => AssertRazorCompletionItem(DefaultDirectives[0], item), item => AssertRazorCompletionItem(DefaultDirectives[1], item), item => AssertRazorCompletionItem(DefaultDirectives[2], item)); }
public void GetDirectiveCompletionItems_CodeBlockCommitCharacters() { // Arrange var customDirective = DirectiveDescriptor.CreateCodeBlockDirective("custom", builder => { builder.DisplayName = "code"; builder.Description = "My Custom Code Block Directive."; }); var syntaxTree = CreateSyntaxTree("@cod", customDirective); // Act var completionItems = DirectiveCompletionItemProvider.GetDirectiveCompletionItems(syntaxTree); // Assert Assert.Collection( completionItems, item => AssertRazorCompletionItem("code", customDirective, item, DirectiveCompletionItemProvider.BlockDirectiveCommitCharacters), item => AssertRazorCompletionItem(DefaultDirectives[0], item), item => AssertRazorCompletionItem(DefaultDirectives[1], item), item => AssertRazorCompletionItem(DefaultDirectives[2], item)); }
public void GetDirectiveCompletionItems_UsesDisplayNamesWhenNotNull() { // Arrange var customDirective = DirectiveDescriptor.CreateSingleLineDirective("custom", builder => { builder.DisplayName = "different"; builder.Description = "My Custom Directive."; }); var syntaxTree = CreateSyntaxTree("@addTag", customDirective); // Act var completionItems = DirectiveCompletionItemProvider.GetDirectiveCompletionItems(syntaxTree); // Assert Assert.Collection( completionItems, item => AssertRazorCompletionItem("different", customDirective, item), item => AssertRazorCompletionItem(DefaultDirectives[0], item), item => AssertRazorCompletionItem(DefaultDirectives[1], item), item => AssertRazorCompletionItem(DefaultDirectives[2], item)); }