public void GetDescriptors_LocatesAddTagHelperCodeGenerator() { // Arrange var resolver = new TestTagHelperDescriptorResolver(); var addOrRemoveTagHelperSpanVisitor = new AddOrRemoveTagHelperSpanVisitor(resolver, new ParserErrorSink()); var document = new MarkupBlock( new DirectiveBlock( Factory.CodeTransition(), Factory.MetaCode(SyntaxConstants.CSharp.RemoveTagHelperKeyword + " ") .Accepts(AcceptedCharacters.None), Factory.Code("\"something\"").AsAddTagHelper("something")) ); var expectedRegistration = new TagHelperDirectiveDescriptor("something", TagHelperDirectiveType.AddTagHelper); // Act addOrRemoveTagHelperSpanVisitor.GetDescriptors(document); // Assert var directiveDescriptor = Assert.Single(resolver.DirectiveDescriptors); Assert.Equal(expectedRegistration, directiveDescriptor, TagHelperDirectiveDescriptorComparer.Default); }
public void GetDescriptors_LocatesTagHelperCodeGenerator_CreatesDirectiveDescriptors() { // Arrange var resolver = new TestTagHelperDescriptorResolver(); var addOrRemoveTagHelperSpanVisitor = new AddOrRemoveTagHelperSpanVisitor(resolver, new ParserErrorSink()); var document = new MarkupBlock( Factory.Code("\"one\"").AsAddTagHelper("one"), Factory.Code("\"two\"").AsRemoveTagHelper("two"), Factory.Code("\"three\"").AsRemoveTagHelper("three")); var expectedRegistrations = new TagHelperDirectiveDescriptor[] { new TagHelperDirectiveDescriptor("one", TagHelperDirectiveType.AddTagHelper), new TagHelperDirectiveDescriptor("two", TagHelperDirectiveType.RemoveTagHelper), new TagHelperDirectiveDescriptor("three", TagHelperDirectiveType.RemoveTagHelper), }; // Act addOrRemoveTagHelperSpanVisitor.GetDescriptors(document); // Assert Assert.Equal(expectedRegistrations, resolver.DirectiveDescriptors, TagHelperDirectiveDescriptorComparer.Default); }
/// <summary> /// Returns a sequence of <see cref="TagHelperDescriptor"/>s for tag helpers that are registered in the /// specified <paramref name="documentRoot"/>. /// </summary> /// <param name="documentRoot">The <see cref="Block"/> to scan for tag helper registrations in.</param> /// <returns></returns> protected virtual IEnumerable <TagHelperDescriptor> GetTagHelperDescriptors([NotNull] Block documentRoot) { var addOrRemoveTagHelperSpanVisitor = new AddOrRemoveTagHelperSpanVisitor(TagHelperDescriptorResolver); return(addOrRemoveTagHelperSpanVisitor.GetDescriptors(documentRoot)); }