/// <summary> /// Internal for testing. /// </summary> internal static bool ValidTargetElementAttributeNames( TargetElementAttribute attribute, ErrorSink errorSink) { var validTagName = ValidateName(attribute.Tag, targetingAttributes: false, errorSink: errorSink); var validAttributeNames = true; var attributeNames = GetCommaSeparatedValues(attribute.Attributes); foreach (var attributeName in attributeNames) { if (!ValidateName(attributeName, targetingAttributes: true, errorSink: errorSink)) { validAttributeNames = false; } } return validTagName && validAttributeNames; }
private static TagHelperDescriptor BuildTagHelperDescriptor( string typeName, string assemblyName, IEnumerable<TagHelperAttributeDescriptor> attributeDescriptors, TargetElementAttribute targetElementAttribute) { var requiredAttributes = GetCommaSeparatedValues(targetElementAttribute.Attributes); return BuildTagHelperDescriptor( targetElementAttribute.Tag, typeName, assemblyName, attributeDescriptors, requiredAttributes); }
private static TagHelperDescriptor BuildTagHelperDescriptor( string typeName, string assemblyName, IEnumerable<TagHelperAttributeDescriptor> attributeDescriptors, TargetElementAttribute targetElementAttribute, IEnumerable<string> allowedChildren, TagHelperDesignTimeDescriptor designTimeDescriptor) { var requiredAttributes = GetCommaSeparatedValues(targetElementAttribute.Attributes); return BuildTagHelperDescriptor( targetElementAttribute.Tag, typeName, assemblyName, attributeDescriptors, requiredAttributes, allowedChildren, targetElementAttribute.TagStructure, designTimeDescriptor); }
public void ValidTargetElementAttributeNames_CreatesErrorOnInvalidNames( string name, string[] expectedErrorMessages) { // Arrange var errorSink = new ParserErrorSink(); var attribute = new TargetElementAttribute(name); // Act TagHelperDescriptorFactory.ValidTargetElementAttributeNames(attribute, errorSink); // Assert var errors = errorSink.Errors.ToArray(); for (var i = 0; i < errors.Length; i++) { Assert.Equal(expectedErrorMessages[i], errors[i].Message); Assert.Equal(SourceLocation.Zero, errors[i].Location); } }