public static void NodeReturnsNullWhenPositionIsOutsideOfAttributeName() { var directive = new OutputDirective( new DirectiveBlockStart(0), new DirectiveName(4, "output"), new[] { new Attribute(new AttributeName(11, "e"), new Equals(12), new DoubleQuote(13), new AttributeValue(14, string.Empty), new DoubleQuote(14)) }, new BlockEnd(16)); var builder = new TemplateCompletionBuilder(13); builder.Visit(directive); Assert.Null(builder.Node); }
public static void CompletionsReturnsNullWhenAllAttributesAreAlreadyPresentInDirective() { // <#@ output extension="txt" encoding="UTF8" #> var attributes = new[] { new Attribute(new AttributeName(11, "extension"), new Equals(20), new DoubleQuote(21), new AttributeValue(22, "txt"), new DoubleQuote(25)), new Attribute(new AttributeName(27, "encoding"), new Equals(35), new DoubleQuote(36), new AttributeValue(37, "UTF8"), new DoubleQuote(41)) }; var directive = new OutputDirective(new DirectiveBlockStart(0), new DirectiveName(4, "output"), attributes, new BlockEnd(43)); var builder = new TemplateCompletionBuilder(35); builder.Visit(directive); Assert.Null(builder.Completions); }
public static void CompletionsExcludeAttributesAlreadyPresentInDirective() { // <#@ output extension="txt" e="" #> var attributes = new[] { new Attribute(new AttributeName(11, "extension"), new Equals(20), new DoubleQuote(21), new AttributeValue(22, "txt"), new DoubleQuote(25)), new Attribute(new AttributeName(27, "e"), new Equals(28), new DoubleQuote(29), new AttributeValue(30, string.Empty), new DoubleQuote(30)) }; var directive = new OutputDirective(new DirectiveBlockStart(0), new DirectiveName(4, "output"), attributes, new BlockEnd(32)); var builder = new TemplateCompletionBuilder(28); builder.Visit(directive); Assert.True(string.Equals(builder.Completions.Single().DisplayText, "encoding", StringComparison.OrdinalIgnoreCase)); }
public static void CompletionsReturnsAttributeNamesWithDescriptions() { var directive = new OutputDirective( new DirectiveBlockStart(0), new DirectiveName(4, "output"), new[] { new Attribute(new AttributeName(11, "e"), new Equals(12), new DoubleQuote(13), new AttributeValue(14, string.Empty), new DoubleQuote(14)) }, new BlockEnd(16)); var builder = new TemplateCompletionBuilder(12); builder.Visit(directive); foreach (Completion completion in builder.Completions) { Assert.False(string.IsNullOrEmpty(completion.Description), completion.DisplayText + " completion should have a description."); } }
public static void CompletionsReturnsAttributeNamesWhenPositionIsWithinAttributeName() { // <#@ output e="" #> var directive = new OutputDirective( new DirectiveBlockStart(0), new DirectiveName(4, "output"), new[] { new Attribute(new AttributeName(11, "e"), new Equals(12), new DoubleQuote(13), new AttributeValue(14, string.Empty), new DoubleQuote(14)) }, new BlockEnd(16)); var builder = new TemplateCompletionBuilder(12); builder.Visit(directive); Assert.NotNull(builder.Completions); Assert.Contains(builder.Completions, c => string.Equals(c.DisplayText, "encoding", StringComparison.OrdinalIgnoreCase)); Assert.Contains(builder.Completions, c => string.Equals(c.DisplayText, "extension", StringComparison.OrdinalIgnoreCase)); }