Example #1
0
        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);
            }
        }
Example #2
0
        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);
            }
        }
Example #3
0
        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);
        }