Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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));
        }
Beispiel #4
0
        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.");
            }
        }
Beispiel #5
0
        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));
        }