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); }
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); }
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); }
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); }