예제 #1
0
 public static void DescriptionReturnsValueSpecifiedInDescriptionAttributeAppliedToAttributeProperty()
 {
     PropertyDescriptor property = TypeDescriptor.GetProperties(typeof(TemplateDirective))["Language"];
     var attribute = (DescriptionAttribute)property.Attributes[typeof(DescriptionAttribute)];
     var descriptor = new AttributeDescriptor(property);
     Assert.Equal(attribute.Description, descriptor.Description);
 }
예제 #2
0
 public static void EncodingProvidesMetadataAboutKnownValues()
 {
     var attributeDescriptor = new AttributeDescriptor(TypeDescriptor.GetProperties(typeof(OutputDirective))["Encoding"]);
     Assert.NotEqual(0, attributeDescriptor.Values.Count);
     ValueDescriptor valueDescriptor = attributeDescriptor.Values["utf-16"];
     Assert.Equal("Unicode", valueDescriptor.Description);
 }
예제 #3
0
 public static void CultureProvidesMetadataAboutWellKnownValues()
 {
     var attributeDescriptor = new AttributeDescriptor(TypeDescriptor.GetProperties(typeof(TemplateDirective))["Culture"]);
     Assert.NotEqual(0, attributeDescriptor.Values.Count);
     ValueDescriptor valueDescriptor = attributeDescriptor.Values["en-US"];
     Assert.Equal("English (United States)", valueDescriptor.Description);
 }
예제 #4
0
 public static void ValueCachesResultToImprovePerformance()
 {
     var attribute = new AttributeDescriptor(TypeDescriptor.GetProperties(typeof(TestDirective))["PropertyWithKnownValues"]);
     Assert.Same(attribute.Values, attribute.Values);
 }
예제 #5
0
 public static void ValuesReturnsDictionaryOfValuesForPropertyWithKnownValuesAttribute()
 {
     var attribute = new AttributeDescriptor(TypeDescriptor.GetProperties(typeof(TestDirective))["PropertyWithKnownValues"]);
     IReadOnlyDictionary<string, ValueDescriptor> values = attribute.Values;
     Assert.Equal(3, values.Count);
 }
예제 #6
0
 public static void ValuesReturnsEmptyDictionaryForPropertyWithoutWellKnownValues()
 {
     var attribute = new AttributeDescriptor(TypeDescriptor.GetProperties(typeof(TestDirective))["PropertyWithoutKnownValues"]);        
     Assert.Equal(0, attribute.Values.Count);
 }
예제 #7
0
 public static void DisplayNameReturnsValueSpecifiedInDisplayNameAttributeAppliedToAttributeProperty()
 {
     PropertyDescriptor property = TypeDescriptor.GetProperties(typeof(AssemblyDirective))["AssemblyName"];
     var descriptor = new AttributeDescriptor(property);
     Assert.Equal("Name", descriptor.DisplayName);
 }
예제 #8
0
 public static void DisplayNameReturnsNameOfAttributeProperty()
 {
     PropertyDescriptor property = TypeDescriptor.GetProperties(typeof(TemplateDirective))["Language"];
     var descriptor = new AttributeDescriptor(property);
     Assert.Equal("Language", descriptor.DisplayName);
 }
예제 #9
0
 public static void HostSpecificProvidesMetadataAboutWellKnownValues()
 {
     var attributeDescriptor = new AttributeDescriptor(TypeDescriptor.GetProperties(typeof(TemplateDirective))["HostSpecific"]);
     Assert.Equal(3, attributeDescriptor.Values.Count);
     VerifyAttributeValueDescriptor(attributeDescriptor, "false");
     VerifyAttributeValueDescriptor(attributeDescriptor, "true");
     VerifyAttributeValueDescriptor(attributeDescriptor, "trueFromBase");
 }
예제 #10
0
        public static void ValuesReturnsEmptyDictionaryForPropertyWithoutWellKnownValues()
        {
            var attribute = new AttributeDescriptor(TypeDescriptor.GetProperties(typeof(TestDirective))["PropertyWithoutKnownValues"]);

            Assert.Equal(0, attribute.Values.Count);
        }
예제 #11
0
 private static void VerifyAttributeValueDescriptor(AttributeDescriptor attribute, string valueName)
 {
     ValueDescriptor value = attribute.Values[valueName];
     Assert.False(string.IsNullOrWhiteSpace(value.Description), valueName + " attribute value does not have a description");
 }
예제 #12
0
 public static void VisibilityProvidesMetadataAboutWellKnownValues()
 {
     var attributeDescriptor = new AttributeDescriptor(TypeDescriptor.GetProperties(typeof(TemplateDirective))["Visibility"]);
     Assert.Equal(2, attributeDescriptor.Values.Count);
     VerifyAttributeValueDescriptor(attributeDescriptor, "public");
     VerifyAttributeValueDescriptor(attributeDescriptor, "internal");
 }
예제 #13
0
 public static void LinePragmasProvidesMetadataAboutWellKnownValues()
 {
     var attributeDescriptor = new AttributeDescriptor(TypeDescriptor.GetProperties(typeof(TemplateDirective))["LinePragmas"]);
     Assert.Equal(2, attributeDescriptor.Values.Count);
     VerifyAttributeValueDescriptor(attributeDescriptor, "false");
     VerifyAttributeValueDescriptor(attributeDescriptor, "true");
 }
예제 #14
0
 public static void LanguageProvidesMetadataAboutWellKnownValues()
 {
     var attributeDescriptor = new AttributeDescriptor(TypeDescriptor.GetProperties(typeof(TemplateDirective))["Language"]);
     Assert.Equal(2, attributeDescriptor.Values.Count);
     VerifyAttributeValueDescriptor(attributeDescriptor, "C#");
     VerifyAttributeValueDescriptor(attributeDescriptor, "VB");
 }
예제 #15
0
        private static void VerifyAttributeValueDescriptor(AttributeDescriptor attribute, string valueName)
        {
            ValueDescriptor value = attribute.Values[valueName];

            Assert.False(string.IsNullOrWhiteSpace(value.Description), valueName + " attribute value does not have a description");
        }
예제 #16
0
        public static void ValueCachesResultToImprovePerformance()
        {
            var attribute = new AttributeDescriptor(TypeDescriptor.GetProperties(typeof(TestDirective))["PropertyWithKnownValues"]);

            Assert.Same(attribute.Values, attribute.Values);
        }
 private static Completion CreateAttributeCompletion(AttributeDescriptor attribute)
 {
     return new Completion(attribute.DisplayName, attribute.DisplayName, attribute.Description, null, null);
 }