예제 #1
0
        public void Resolve_ResolvesDesignTimeTagHelperDescriptors()
        {
            // Arrange
            var assemblyNameLookups = new Dictionary <string, IEnumerable <Type> >
            {
                { CustomTagHelperAssembly, new[] { typeof(DesignTimeTagHelper) } }
            };
            var descriptorResolver = new TestAssemblyTagHelperDescriptorResolver(assemblyNameLookups);
            var expectedDescriptor = new TagHelperDescriptor
            {
                Prefix               = DefaultPrefix,
                TagName              = "design-time",
                TypeName             = typeof(DesignTimeTagHelper).FullName,
                AssemblyName         = typeof(DesignTimeTagHelper).GetTypeInfo().Assembly.GetName().Name,
                AllowedChildren      = new[] { "br" },
                TagStructure         = TagStructure.NormalOrSelfClosing,
                DesignTimeDescriptor = new TagHelperDesignTimeDescriptor
                {
                    OutputElementHint = "strong"
                }
            };
            var errorSink = new ErrorSink();

            // Act
            var descriptors = descriptorResolver.Resolve(CustomTagHelperAssembly, errorSink);

            // Assert
            Assert.NotNull(descriptors);
            var descriptor = Assert.Single(descriptors);

            Assert.Equal(CustomTagHelperAssembly, descriptor.AssemblyName, StringComparer.Ordinal);
            Assert.Equal(expectedDescriptor, descriptor, CaseSensitiveTagHelperDescriptorComparer.Default);
            Assert.Empty(errorSink.Errors);
        }
예제 #2
0
        public void Resolve_ResolvesTagHelperDescriptors()
        {
            // Arrange
            var assemblyNameLookups = new Dictionary <string, IEnumerable <Type> >
            {
                { CustomTagHelperAssembly, new[] { typeof(CustomTagHelper) } }
            };
            var descriptorResolver = new TestAssemblyTagHelperDescriptorResolver(assemblyNameLookups);
            var errorSink          = new ErrorSink();

            // Act
            var descriptors = descriptorResolver.Resolve(CustomTagHelperAssembly, errorSink);

            // Assert
            Assert.NotNull(descriptors);
            var descriptor = Assert.Single(descriptors);

            Assert.Equal(CustomTagHelperAssembly, descriptor.AssemblyName, StringComparer.Ordinal);
            Assert.Equal(CustomTagHelperDescriptor, descriptor, CaseSensitiveTagHelperDescriptorComparer.Default);
            Assert.Empty(errorSink.Errors);
        }
예제 #3
0
        public void Resolve_CreatesErrors()
        {
            // Arrange
            var assemblyNameLookups = new Dictionary <string, IEnumerable <Type> >
            {
                { CustomTagHelperAssembly, new[] { typeof(InvalidTagHelper) } }
            };
            var descriptorResolver = new TestAssemblyTagHelperDescriptorResolver(assemblyNameLookups);
            var errorSink          = new ErrorSink();

            // Act
            var descriptors = descriptorResolver.Resolve(CustomTagHelperAssembly, errorSink);

            // Assert
            Assert.NotEmpty(descriptors);
            var error = Assert.Single(errorSink.Errors);

            Assert.Equal(
                "Tag helpers cannot target tag name 'inv@lid' because it contains a '@' character.",
                error.Message,
                StringComparer.Ordinal);
            Assert.Equal(SourceLocation.Zero, error.Location);
            Assert.Equal(0, error.Length);
        }