public void GetDefaultAttribute_InvalidType_ReturnsNull()
        {
            var collection = new SubAttributeCollection();

            Assert.Throws <InvalidCastException>(() => collection.GetDefaultAttribute(typeof(AttributeCollectionTests)));

            // Call again.
            Assert.Throws <InvalidCastException>(() => collection.GetDefaultAttribute(typeof(AttributeCollectionTests)));
        }
        public void GetDefaultAttribute_NoDefault_ReturnsNull(Type attributeType)
        {
            var collection = new SubAttributeCollection();

            Assert.Null(collection.GetDefaultAttribute(attributeType));

            // Call again.
            Assert.Null(collection.GetDefaultAttribute(attributeType));
        }
        public void GetDefaultAttribute_InvokeCustom_ReturnsExpected()
        {
            var collection            = new SubAttributeCollection();
            BrowsableAttribute result = Assert.IsType <BrowsableAttribute>(collection.GetDefaultAttribute(typeof(BrowsableAttribute)));

            Assert.True(result.Browsable);

            // Call again.
            Assert.Same(result, collection.GetDefaultAttribute(typeof(BrowsableAttribute)));
        }
        public void GetDefaultAttribute_InvokeParameterlessConstructorDefault_ReturnsExpected()
        {
            var collection = new SubAttributeCollection();
            AttributeWithDefaultConstructor result = Assert.IsType <AttributeWithDefaultConstructor>(collection.GetDefaultAttribute(typeof(AttributeWithDefaultConstructor)));

            // Call again.
            Assert.Same(result, collection.GetDefaultAttribute(typeof(AttributeWithDefaultConstructor)));
        }
        public void GetDefaultAttribute_InvokeDefaultFieldNotDefault_ReturnsExpected()
        {
            var collection = new SubAttributeCollection();
            AttributeWithDefaultFieldNotDefault result = Assert.IsType <AttributeWithDefaultFieldNotDefault>(collection.GetDefaultAttribute(typeof(AttributeWithDefaultFieldNotDefault)));

            Assert.Same(AttributeWithDefaultFieldNotDefault.Default, result);

            // Call again.
            Assert.Same(result, collection.GetDefaultAttribute(typeof(AttributeWithDefaultFieldNotDefault)));
        }
        public void GetDefaultAttribute_NullAttributeType_ThrowsArgumentNullException()
        {
            var collection = new SubAttributeCollection();

            Assert.Throws <ArgumentNullException>("attributeType", () => collection.GetDefaultAttribute(null));
        }