public void GetTagHelperDescriptors_ReturnsExpectedDirectiveDescriptors( ChunkTree[] chunkTrees, TagHelperDirectiveDescriptor[] expectedDirectiveDescriptors) { // Arrange var builder = new BlockBuilder { Type = BlockType.Comment }; var block = new Block(builder); IList <TagHelperDirectiveDescriptor> descriptors = null; var resolver = new Mock <ITagHelperDescriptorResolver>(); resolver.Setup(r => r.Resolve(It.IsAny <TagHelperDescriptorResolutionContext>())) .Callback((TagHelperDescriptorResolutionContext context) => { descriptors = context.DirectiveDescriptors; }) .Returns(Enumerable.Empty <TagHelperDescriptor>()) .Verifiable(); var baseParser = new RazorParser( new CSharpCodeParser(), new HtmlMarkupParser(), tagHelperDescriptorResolver: resolver.Object); var parser = new TestableMvcRazorParser(baseParser, chunkTrees, defaultInheritedChunks: new Chunk[0]); // Act parser.GetTagHelperDescriptorsPublic(block, errorSink: new ErrorSink()).ToArray(); // Assert Assert.NotNull(descriptors); Assert.Equal(expectedDirectiveDescriptors.Length, descriptors.Count); for (var i = 0; i < expectedDirectiveDescriptors.Length; i++) { var expected = expectedDirectiveDescriptors[i]; var actual = descriptors[i]; Assert.Equal(expected.DirectiveText, actual.DirectiveText, StringComparer.Ordinal); Assert.Equal(SourceLocation.Zero, actual.Location); Assert.Equal(expected.DirectiveType, actual.DirectiveType); } }
public void GetTagHelperDescriptors_ReturnsExpectedDirectiveDescriptors( CodeTree[] codeTrees, TagHelperDirectiveDescriptor[] expectedDirectiveDescriptors) { // Arrange var builder = new BlockBuilder { Type = BlockType.Comment }; var block = new Block(builder); IList<TagHelperDirectiveDescriptor> descriptors = null; var resolver = new Mock<ITagHelperDescriptorResolver>(); resolver.Setup(r => r.Resolve(It.IsAny<TagHelperDescriptorResolutionContext>())) .Callback((TagHelperDescriptorResolutionContext context) => { descriptors = context.DirectiveDescriptors; }) .Returns(Enumerable.Empty<TagHelperDescriptor>()) .Verifiable(); var baseParser = new RazorParser( new CSharpCodeParser(), new HtmlMarkupParser(), tagHelperDescriptorResolver: resolver.Object); var parser = new TestableMvcRazorParser(baseParser, codeTrees, defaultInheritedChunks: new Chunk[0]); // Act parser.GetTagHelperDescriptorsPublic(block, errorSink: new ErrorSink()).ToArray(); // Assert Assert.NotNull(descriptors); Assert.Equal(expectedDirectiveDescriptors.Length, descriptors.Count); for (var i = 0; i < expectedDirectiveDescriptors.Length; i++) { var expected = expectedDirectiveDescriptors[i]; var actual = descriptors[i]; Assert.Equal(expected.DirectiveText, actual.DirectiveText, StringComparer.Ordinal); Assert.Equal(SourceLocation.Zero, actual.Location); Assert.Equal(expected.DirectiveType, actual.DirectiveType); } }
public void GetTagHelperDescriptors_ReturnsDescriptorsFromViewStart() { // Arrange var builder = new BlockBuilder { Type = BlockType.Comment }; var block = new Block(builder); var codeTrees = new[] { new CodeTree { Chunks = new Chunk[] { new LiteralChunk { Text = "Hello world" }, new AddTagHelperChunk { LookupText = "Add Tag Helper" }, } }, new CodeTree { Chunks = new[] { new RemoveTagHelperChunk { LookupText = "Remove Tag Helper" }, } } }; IList <TagHelperDirectiveDescriptor> descriptors = null; var resolver = new Mock <ITagHelperDescriptorResolver>(); resolver.Setup(r => r.Resolve(It.IsAny <TagHelperDescriptorResolutionContext>())) .Callback((TagHelperDescriptorResolutionContext context) => { descriptors = context.DirectiveDescriptors; }) .Returns(Enumerable.Empty <TagHelperDescriptor>()) .Verifiable(); var baseParser = new RazorParser(new CSharpCodeParser(), new HtmlMarkupParser(), resolver.Object); var parser = new TestableMvcRazorParser(baseParser, codeTrees, new Chunk[0]); var sink = new ParserErrorSink(); // Act var result = parser.GetTagHelperDescriptorsPublic(block, sink).ToArray(); // Assert Assert.NotNull(descriptors); Assert.Equal(2, descriptors.Count); Assert.Equal("Remove Tag Helper", descriptors[0].LookupText); Assert.Equal(SourceLocation.Undefined, descriptors[0].Location); Assert.Equal("Add Tag Helper", descriptors[1].LookupText); Assert.Equal(TagHelperDirectiveType.AddTagHelper, descriptors[1].DirectiveType); Assert.Equal(SourceLocation.Undefined, descriptors[1].Location); }