Ejemplo n.º 1
0
        public void GetDescriptors_LocatesNestedRemoveTagHelperChunkGenerator()
        {
            // Arrange
            var resolver = new TestTagHelperDescriptorResolver();
            var tagHelperDirectiveSpanVisitor = new TagHelperDirectiveSpanVisitor(resolver, new ErrorSink());
            var document = new MarkupBlock(
                new DirectiveBlock(
                    Factory.CodeTransition(),
                    Factory.MetaCode(SyntaxConstants.CSharp.RemoveTagHelperKeyword + " ")
                    .Accepts(AcceptedCharacters.None),
                    Factory.Code("something").AsRemoveTagHelper("something"))
                );
            var expectedRegistration = new TagHelperDirectiveDescriptor
            {
                DirectiveText = "something",
                DirectiveType = TagHelperDirectiveType.RemoveTagHelper
            };

            // Act
            tagHelperDirectiveSpanVisitor.GetDescriptors(document);

            // Assert
            var directiveDescriptor = Assert.Single(resolver.DirectiveDescriptors);

            Assert.Equal(expectedRegistration, directiveDescriptor, TagHelperDirectiveDescriptorComparer.Default);
        }
Ejemplo n.º 2
0
        public void GetDescriptors_LocatesTagHelperChunkGenerator_CreatesDirectiveDescriptors()
        {
            // Arrange
            var resolver = new TestTagHelperDescriptorResolver();
            var tagHelperDirectiveSpanVisitor = new TagHelperDirectiveSpanVisitor(resolver, new ErrorSink());
            var document = new MarkupBlock(
                Factory.Code("one").AsAddTagHelper("one"),
                Factory.Code("two").AsRemoveTagHelper("two"),
                Factory.Code("three").AsRemoveTagHelper("three"),
                Factory.Code("four").AsTagHelperPrefixDirective("four"));
            var expectedDescriptors = new TagHelperDirectiveDescriptor[]
            {
                new TagHelperDirectiveDescriptor
                {
                    DirectiveText = "one",
                    DirectiveType = TagHelperDirectiveType.AddTagHelper
                },
                new TagHelperDirectiveDescriptor
                {
                    DirectiveText = "two",
                    DirectiveType = TagHelperDirectiveType.RemoveTagHelper
                },
                new TagHelperDirectiveDescriptor
                {
                    DirectiveText = "three",
                    DirectiveType = TagHelperDirectiveType.RemoveTagHelper
                },
                new TagHelperDirectiveDescriptor
                {
                    DirectiveText = "four",
                    DirectiveType = TagHelperDirectiveType.TagHelperPrefix
                }
            };

            // Act
            tagHelperDirectiveSpanVisitor.GetDescriptors(document);

            // Assert
            Assert.Equal(
                expectedDescriptors,
                resolver.DirectiveDescriptors,
                TagHelperDirectiveDescriptorComparer.Default);
        }
Ejemplo n.º 3
0
        public void TagHelperResolution(bool designTime)
        {
            var descriptorResolver    = new TagHelperDescriptorResolver(designTime);
            var errorSink             = new ErrorSink();
            var addTagHelperDirective = new TagHelperDirectiveDescriptor
            {
                DirectiveText = "*, Microsoft.AspNetCore.Mvc.TagHelpers",
                DirectiveType = TagHelperDirectiveType.AddTagHelper,
                Location      = SourceLocation.Zero
            };
            var resolutionContext = new TagHelperDescriptorResolutionContext(
                new[] { addTagHelperDirective },
                errorSink);
            IEnumerable <TagHelperDescriptor> descriptors;

            using (Collector.StartCollection())
            {
                descriptors = descriptorResolver.Resolve(resolutionContext);
            }

            Assert.NotEmpty(descriptors);
            Assert.Empty(errorSink.Errors);
        }
Ejemplo n.º 4
0
        public void GetDescriptors_CanOverrideResolutionContext()
        {
            // Arrange
            var resolver = new TestTagHelperDescriptorResolver();
            var expectedInitialDirectiveDescriptors = new TagHelperDirectiveDescriptor[]
            {
                new TagHelperDirectiveDescriptor
                {
                    DirectiveText = "one",
                    DirectiveType = TagHelperDirectiveType.AddTagHelper
                },
                new TagHelperDirectiveDescriptor
                {
                    DirectiveText = "two",
                    DirectiveType = TagHelperDirectiveType.RemoveTagHelper
                },
                new TagHelperDirectiveDescriptor
                {
                    DirectiveText = "three",
                    DirectiveType = TagHelperDirectiveType.RemoveTagHelper
                },
                new TagHelperDirectiveDescriptor
                {
                    DirectiveText = "four",
                    DirectiveType = TagHelperDirectiveType.TagHelperPrefix
                }
            };
            var expectedEndDirectiveDescriptors = new TagHelperDirectiveDescriptor[]
            {
                new TagHelperDirectiveDescriptor
                {
                    DirectiveText = "custom",
                    DirectiveType = TagHelperDirectiveType.AddTagHelper
                }
            };
            var tagHelperDirectiveSpanVisitor = new CustomTagHelperDirectiveSpanVisitor(
                resolver,
                (descriptors, errorSink) =>
            {
                Assert.Equal(
                    expectedInitialDirectiveDescriptors,
                    descriptors,
                    TagHelperDirectiveDescriptorComparer.Default);

                return(new TagHelperDescriptorResolutionContext(expectedEndDirectiveDescriptors, errorSink));
            });
            var document = new MarkupBlock(
                Factory.Code("one").AsAddTagHelper("one"),
                Factory.Code("two").AsRemoveTagHelper("two"),
                Factory.Code("three").AsRemoveTagHelper("three"),
                Factory.Code("four").AsTagHelperPrefixDirective("four"));


            // Act
            tagHelperDirectiveSpanVisitor.GetDescriptors(document);

            // Assert
            Assert.Equal(expectedEndDirectiveDescriptors,
                         resolver.DirectiveDescriptors,
                         TagHelperDirectiveDescriptorComparer.Default);
        }