public static void GetDirectiveDescriptorCachesDescriptorsToImprovePerformance() { DirectiveDescriptor descriptor1 = DirectiveDescriptor.GetDirectiveDescriptor(typeof(AssemblyDirective)); DirectiveDescriptor descriptor2 = DirectiveDescriptor.GetDirectiveDescriptor(typeof(AssemblyDirective)); Assert.Same(descriptor1, descriptor2); }
protected virtual IEnumerable <TemplateError> ValidateAttributes() { DirectiveDescriptor directiveDescriptor = DirectiveDescriptor.GetDirectiveDescriptor(this.GetType()); foreach (Attribute attribute in this.Attributes.Values) { AttributeDescriptor attributeDescriptor; if (directiveDescriptor.Attributes.TryGetValue(attribute.Name, out attributeDescriptor)) { if (attributeDescriptor.Values.Count > 0 && !attributeDescriptor.Values.ContainsKey(attribute.Value)) { AttributeValue attributeValue = attribute.ChildNodes().OfType <AttributeValue>().First(); yield return(new TemplateError( string.Format("Unexpected {0} attribute value: {1}", attribute.Name, attribute.Value), attributeValue.Span, attributeValue.Position)); } } else { yield return(new TemplateError("Unexpected attribute: " + attribute.Name, attribute.Span, attribute.Position)); } } }
public static void GetDirectiveDescriptorReturnsDescriptorOfGivenType() { DirectiveDescriptor descriptor = DirectiveDescriptor.GetDirectiveDescriptor(typeof(AssemblyDirective)); Assert.Equal("assembly", descriptor.DisplayName); }