Ejemplo n.º 1
0
        private Mock <IMetadataAwareValueProvider> GetMockValueProvider(IValueProviderMetadata metadata)
        {
            var valueProvider = new Mock <IMetadataAwareValueProvider>();

            valueProvider.Setup(o => o.Filter(metadata))
            .Returns(valueProvider.Object);
            return(valueProvider);
        }
Ejemplo n.º 2
0
        public virtual IValueProvider Filter(IValueProviderMetadata valueBinderMetadata)
        {
            if (valueBinderMetadata is TBinderMetadata)
            {
                return(this);
            }

            return(null);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 5
0
        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));
        }
Ejemplo n.º 6
0
        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);
        }