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)); }
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 })); }
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 })); }
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))); }
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))); }