public void GetDescriptors_ReturnsNothingForUnregisteredTags() { // Arrange var divDescriptor = new TagHelperDescriptor { TagName = "div", TypeName = "foo1", AssemblyName = "SomeAssembly", }; var spanDescriptor = new TagHelperDescriptor { TagName = "span", TypeName = "foo2", AssemblyName = "SomeAssembly", }; var descriptors = new TagHelperDescriptor[] { divDescriptor, spanDescriptor }; var provider = new TagHelperDescriptorProvider(descriptors); // Act var retrievedDescriptors = provider.GetDescriptors( tagName: "foo", attributeNames: Enumerable.Empty <string>(), parentTagName: "p"); // Assert Assert.Empty(retrievedDescriptors); }
public void GetDescriptors_ReturnsCatchAllsWithEveryTagName() { // Arrange var divDescriptor = new TagHelperDescriptor { TagName = "div", TypeName = "foo1", AssemblyName = "SomeAssembly", }; var spanDescriptor = new TagHelperDescriptor { TagName = "span", TypeName = "foo2", AssemblyName = "SomeAssembly", }; var catchAllDescriptor = new TagHelperDescriptor { TagName = TagHelperDescriptorProvider.ElementCatchAllTarget, TypeName = "foo3", AssemblyName = "SomeAssembly", }; var descriptors = new TagHelperDescriptor[] { divDescriptor, spanDescriptor, catchAllDescriptor }; var provider = new TagHelperDescriptorProvider(descriptors); // Act var divDescriptors = provider.GetDescriptors( tagName: "div", attributeNames: Enumerable.Empty <string>(), parentTagName: "p"); var spanDescriptors = provider.GetDescriptors( tagName: "span", attributeNames: Enumerable.Empty <string>(), parentTagName: "p"); // Assert // For divs Assert.Equal(2, divDescriptors.Count()); Assert.Contains(divDescriptor, divDescriptors); Assert.Contains(catchAllDescriptor, divDescriptors); // For spans Assert.Equal(2, spanDescriptors.Count()); Assert.Contains(spanDescriptor, spanDescriptors); Assert.Contains(catchAllDescriptor, spanDescriptors); }
public void GetDescriptors_ReturnsCatchAllDescriptorsForPrefixedTags() { // Arrange var catchAllDescriptor = CreatePrefixedDescriptor("th:", TagHelperDescriptorProvider.ElementCatchAllTarget, "foo1"); var descriptors = new[] { catchAllDescriptor }; var provider = new TagHelperDescriptorProvider(descriptors); // Act var retrievedDescriptorsDiv = provider.GetDescriptors( tagName: "th:div", attributeNames: Enumerable.Empty <string>(), parentTagName: "p"); var retrievedDescriptorsSpan = provider.GetDescriptors( tagName: "th:span", attributeNames: Enumerable.Empty <string>(), parentTagName: "p"); // Assert var descriptor = Assert.Single(retrievedDescriptorsDiv); Assert.Same(catchAllDescriptor, descriptor); descriptor = Assert.Single(retrievedDescriptorsSpan); Assert.Same(catchAllDescriptor, descriptor); }
public void GetDescriptors_OnlyUnderstandsSinglePrefix() { // Arrange var divDescriptor = CreatePrefixedDescriptor("th:", "div", "foo1"); var spanDescriptor = CreatePrefixedDescriptor("th2:", "span", "foo2"); var descriptors = new[] { divDescriptor, spanDescriptor }; var provider = new TagHelperDescriptorProvider(descriptors); // Act var retrievedDescriptorsDiv = provider.GetDescriptors( tagName: "th:div", attributeNames: Enumerable.Empty <string>(), parentTagName: "p"); var retrievedDescriptorsSpan = provider.GetDescriptors( tagName: "th2:span", attributeNames: Enumerable.Empty <string>(), parentTagName: "p"); // Assert var descriptor = Assert.Single(retrievedDescriptorsDiv); Assert.Same(divDescriptor, descriptor); Assert.Empty(retrievedDescriptorsSpan); }
public void GetDescriptors_ReturnsDescriptorsWithRequiredAttributes( string tagName, IEnumerable <string> providedAttributes, IEnumerable <TagHelperDescriptor> availableDescriptors, IEnumerable <TagHelperDescriptor> expectedDescriptors) { // Arrange var provider = new TagHelperDescriptorProvider(availableDescriptors); // Act var resolvedDescriptors = provider.GetDescriptors(tagName, providedAttributes, parentTagName: "p"); // Assert Assert.Equal(expectedDescriptors, resolvedDescriptors, CaseSensitiveTagHelperDescriptorComparer.Default); }
public void GetDescriptors_ReturnsNothingForUnprefixedTags(string tagName) { // Arrange var divDescriptor = CreatePrefixedDescriptor("th:", tagName, "foo1"); var descriptors = new[] { divDescriptor }; var provider = new TagHelperDescriptorProvider(descriptors); // Act var retrievedDescriptorsDiv = provider.GetDescriptors( tagName: "div", attributeNames: Enumerable.Empty <string>(), parentTagName: "p"); // Assert Assert.Empty(retrievedDescriptorsDiv); }
public void GetDescriptors_ReturnsDescriptorsForPrefixedTags() { // Arrange var divDescriptor = CreatePrefixedDescriptor("th:", "div", "foo1"); var descriptors = new[] { divDescriptor }; var provider = new TagHelperDescriptorProvider(descriptors); // Act var retrievedDescriptors = provider.GetDescriptors( tagName: "th:div", attributeNames: Enumerable.Empty <string>(), parentTagName: "p"); // Assert var descriptor = Assert.Single(retrievedDescriptors); Assert.Same(divDescriptor, descriptor); }
public void GetDescriptors_ReturnsEmptyDescriptorsWithPrefixAsTagName() { // Arrange var catchAllDescriptor = CreatePrefixedDescriptor( "th", TagHelperDescriptorProvider.ElementCatchAllTarget, "foo1"); var descriptors = new[] { catchAllDescriptor }; var provider = new TagHelperDescriptorProvider(descriptors); // Act var resolvedDescriptors = provider.GetDescriptors( tagName: "th", attributeNames: Enumerable.Empty <string>(), parentTagName: "p"); // Assert Assert.Empty(resolvedDescriptors); }
public void GetDescriptors_DuplicateDescriptorsAreNotPartOfTagHelperDescriptorPool() { // Arrange var divDescriptor = new TagHelperDescriptor { TagName = "div", TypeName = "foo1", AssemblyName = "SomeAssembly", }; var descriptors = new TagHelperDescriptor[] { divDescriptor, divDescriptor }; var provider = new TagHelperDescriptorProvider(descriptors); // Act var retrievedDescriptors = provider.GetDescriptors( tagName: "div", attributeNames: Enumerable.Empty <string>(), parentTagName: "p"); // Assert var descriptor = Assert.Single(retrievedDescriptors); Assert.Same(divDescriptor, descriptor); }