private Mock <IMetadataAwareValueProvider> GetMockValueProvider(IValueProviderMetadata metadata) { var valueProvider = new Mock <IMetadataAwareValueProvider>(); valueProvider.Setup(o => o.Filter(metadata)) .Returns(valueProvider.Object); return(valueProvider); }
public virtual IValueProvider Filter(IValueProviderMetadata valueBinderMetadata) { if (valueBinderMetadata is TBinderMetadata) { return(this); } return(null); }
public void FilterReturnsItself_ForAnyClassRegisteredAsGenericParam(IValueProviderMetadata metadata) { // Arrange var valueProvider = new ReadableStringCollectionValueProvider <TestValueProviderMetadata>(_backingStore, null); // Act var result = valueProvider.Filter(metadata); // Assert Assert.NotNull(result); Assert.IsType <ReadableStringCollectionValueProvider <TestValueProviderMetadata> >(result); }
public void FilterReturnsItself_ForAnyClassRegisteredAsGenericParam(IValueProviderMetadata metadata) { // Arrange var values = new Dictionary <string, object>(StringComparer.OrdinalIgnoreCase); var provider = new DictionaryBasedValueProvider <TestValueProviderMetadata>(values); // Act var result = provider.Filter(metadata); // Assert Assert.NotNull(result); Assert.IsType <DictionaryBasedValueProvider <TestValueProviderMetadata> >(result); }
public IValueProvider Filter(IValueProviderMetadata valueBinderMetadata) { var filteredValueProviders = new List <IValueProvider>(); foreach (var valueProvider in this.OfType <IMetadataAwareValueProvider>()) { var result = valueProvider.Filter(valueBinderMetadata); if (result != null) { filteredValueProviders.Add(result); } } return(new CompositeValueProvider(filteredValueProviders)); }
public void FilterReturnsItself_ForAnyClassRegisteredAsGenericParam(IValueProviderMetadata metadata) { // Arrange var values = new Dictionary <string, object>(StringComparer.OrdinalIgnoreCase); var unrelatedMetadata = new UnrelatedValueBinderMetadata(); var valueProvider1 = GetMockValueProvider(metadata); var valueProvider2 = GetMockValueProvider(unrelatedMetadata); var provider = new CompositeValueProvider(new List <IValueProvider>() { valueProvider1.Object, valueProvider2.Object }); // Act var result = provider.Filter(metadata); // Assert var valueProvider = Assert.IsType <CompositeValueProvider>(result); var filteredProvider = Assert.Single(valueProvider); // should not be unrelated metadata. Assert.Same(valueProvider1.Object, filteredProvider); }