Exemplo n.º 1
0
        public void GetBinding_CaseSensitiveRule_CaseMismatch_ReturnsNull()
        {
            // Arrange
            var divTagHelper = TagHelperDescriptorBuilder.Create("DivTagHelper", "SomeAssembly")
                               .TagMatchingRuleDescriptor(rule => rule.RequireTagName("div"))
                               .SetCaseSensitive()
                               .Build();
            var expectedDescriptors = new[] { divTagHelper };
            var expectedAttributes  = new[]
            {
                new KeyValuePair <string, string>("class", "something")
            };
            var tagHelperBinder = new TagHelperBinder("th:", expectedDescriptors);

            // Act
            var bindingResult = tagHelperBinder.GetBinding(
                tagName: "th:Div",
                attributes: expectedAttributes,
                parentTagName: "body",
                parentIsTagHelper: false);

            // Assert
            Assert.Null(bindingResult);
        }
Exemplo n.º 2
0
        private static TagHelperDescriptor CreateTagHelperDescriptor(
            string tagName,
            string typeName,
            string assemblyName,
            IEnumerable <Action <BoundAttributeDescriptorBuilder> > attributes = null)
        {
            var builder = TagHelperDescriptorBuilder.Create(typeName, assemblyName);

            builder.TypeName(typeName);

            if (attributes != null)
            {
                foreach (var attributeBuilder in attributes)
                {
                    builder.BoundAttributeDescriptor(attributeBuilder);
                }
            }

            builder.TagMatchingRuleDescriptor(ruleBuilder => ruleBuilder.RequireTagName(tagName));

            var descriptor = builder.Build();

            return(descriptor);
        }
Exemplo n.º 3
0
        public void GetDescriptors_ReturnsCatchAllsWithEveryTagName()
        {
            // Arrange
            var divDescriptor = TagHelperDescriptorBuilder.Create("foo1", "SomeAssembly")
                                .TagMatchingRuleDescriptor(rule => rule.RequireTagName("div"))
                                .Build();
            var spanDescriptor = TagHelperDescriptorBuilder.Create("foo2", "SomeAssembly")
                                 .TagMatchingRuleDescriptor(rule => rule.RequireTagName("span"))
                                 .Build();
            var catchAllDescriptor = TagHelperDescriptorBuilder.Create("foo3", "SomeAssembly")
                                     .TagMatchingRuleDescriptor(rule => rule.RequireTagName(TagHelperMatchingConventions.ElementCatchAllName))
                                     .Build();
            var descriptors     = new TagHelperDescriptor[] { divDescriptor, spanDescriptor, catchAllDescriptor };
            var tagHelperBinder = new TagHelperBinder(null, descriptors);

            // Act
            var divBinding = tagHelperBinder.GetBinding(
                tagName: "div",
                attributes: Array.Empty <KeyValuePair <string, string> >(),
                parentTagName: "p");
            var spanBinding = tagHelperBinder.GetBinding(
                tagName: "span",
                attributes: Array.Empty <KeyValuePair <string, string> >(),
                parentTagName: "p");

            // Assert
            // For divs
            Assert.Equal(2, divBinding.Descriptors.Count());
            Assert.Contains(divDescriptor, divBinding.Descriptors);
            Assert.Contains(catchAllDescriptor, divBinding.Descriptors);

            // For spans
            Assert.Equal(2, spanBinding.Descriptors.Count());
            Assert.Contains(spanDescriptor, spanBinding.Descriptors);
            Assert.Contains(catchAllDescriptor, spanBinding.Descriptors);
        }