Example #1
0
        public void GetEnumerationValueFilter_FromAttributeProvider_Multiple()
        {
            var propertyInformationStub = MockRepository.GenerateStub <IPropertyInformation>();

            propertyInformationStub.Stub(stub => stub.GetCustomAttribute <IDisableEnumValuesAttribute> (true)).Return(null);
            propertyInformationStub.Stub(stub => stub.PropertyType).Return(typeof(int));

            var filterStub = MockRepository.GenerateStub <IEnumerationValueFilter>();

            var additionalAttributeStub = MockRepository.GenerateStub <IDisableEnumValuesAttribute>();

            additionalAttributeStub.Stub(stub => stub.GetEnumerationValueFilter()).Return(filterStub);

            var provider = new EnumValueFilterProvider <IDisableEnumValuesAttribute> (
                propertyInformationStub,
                delegate(Type type)
            {
                Assert.That(type, Is.SameAs(typeof(int)));
                return(new[] { _attribute, additionalAttributeStub });
            });

            var actualFilter = provider.GetEnumerationValueFilter();

            Assert.That(actualFilter, Is.TypeOf(typeof(CompositeEnumerationValueFilter)));

            var compositeFilter = ((CompositeEnumerationValueFilter)actualFilter);

            Assert.That(compositeFilter.Filters.Count, Is.EqualTo(2));
            Assert.That(compositeFilter.Filters[0], Is.TypeOf(typeof(StubEnumerationValueFilter)));
            Assert.That(compositeFilter.Filters[1], Is.SameAs(filterStub));
        }
Example #2
0
        public void GetEnumerationValueFilter_FromAttributeProvider_IntegrationTestWithNullablePropertyType()
        {
            var provider = new EnumValueFilterProvider <DisableEnumValuesAttribute> (
                GetPropertyInformation("DisabledFromNullablePropertyType"),
                t => AttributeUtility.GetCustomAttributes <DisableEnumValuesAttribute> (t, true));

            var actual = provider.GetEnumerationValueFilter();

            Assert.That(actual, Is.TypeOf(typeof(ConstantEnumerationValueFilter)));
            Assert.That(((ConstantEnumerationValueFilter)actual).DisabledEnumValues, Is.EquivalentTo(new[] { TestEnum.Value5 }));
        }
Example #3
0
        public void GetEnumerationValueFilter_FromPropertyInformation_IntegrationTestWithNullableProperty()
        {
            var provider = new EnumValueFilterProvider <DisableEnumValuesAttribute> (
                GetPropertyInformation("DisabledFromNullableProperty"),
                delegate
            {
                Assert.Fail("Must not be called");
                return(null);
            });

            var actual = provider.GetEnumerationValueFilter();

            Assert.That(actual, Is.TypeOf(typeof(ConstantEnumerationValueFilter)));
            Assert.That(((ConstantEnumerationValueFilter)actual).DisabledEnumValues, Is.EquivalentTo(new[] { TestEnum.Value1 }));
        }
Example #4
0
        public void GetEnumerationValueFilter_FromPropertyInformation()
        {
            var propertyInformationStub = MockRepository.GenerateStub <IPropertyInformation>();

            propertyInformationStub.Stub(stub => stub.GetCustomAttribute <DisableEnumValuesAttribute> (true)).Return(_attribute);

            var provider = new EnumValueFilterProvider <DisableEnumValuesAttribute> (
                propertyInformationStub,
                delegate
            {
                Assert.Fail("Must not be called");
                return(null);
            });

            Assert.That(provider.GetEnumerationValueFilter(), Is.TypeOf(typeof(StubEnumerationValueFilter)));
        }
Example #5
0
        public void GetEnumerationValueFilter_FromAttributeProvider_WithNullableProperty()
        {
            var propertyInformationStub = MockRepository.GenerateStub <IPropertyInformation>();

            propertyInformationStub.Stub(stub => stub.GetCustomAttribute <DisableEnumValuesAttribute> (true)).Return(null);
            propertyInformationStub.Stub(stub => stub.PropertyType).Return(typeof(int?));

            var provider = new EnumValueFilterProvider <DisableEnumValuesAttribute> (
                propertyInformationStub,
                delegate(Type type)
            {
                Assert.That(type, Is.SameAs(typeof(int)));
                return(new[] { _attribute });
            });

            Assert.That(provider.GetEnumerationValueFilter(), Is.TypeOf(typeof(StubEnumerationValueFilter)));
        }