Ejemplo n.º 1
0
        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));
                }
            }
        }
Ejemplo n.º 2
0
        public static void AttributesReturnsTheSameDictionaryWhenCalledMultipleTimesToAvoidRebuildingItUnnecessarily()
        {
            DirectiveDescriptor directive = CreateDirectiveDescriptor(typeof(AssemblyDirective));

            Assert.Same(directive.Attributes, directive.Attributes);
        }
Ejemplo n.º 3
0
        public static void GetDirectiveDescriptorReturnsDescriptorOfGivenType()
        {
            DirectiveDescriptor descriptor = DirectiveDescriptor.GetDirectiveDescriptor(typeof(AssemblyDirective));

            Assert.Equal("assembly", descriptor.DisplayName);
        }