示例#1
0
        public void Assign_WhenNoConversionCallbackFound_ShouldUseDefaultCallback()
        {
            this.conversionCallbacks.Setup(x => x.ConversionCallbacks).Returns(
                new Dictionary <string, Func <string, PropertyInfo, object> >());

            bool wasCalled = false;
            Func <string, PropertyInfo, object> defaultCallback = (value, info) =>
            {
                wasCalled = true;
                return(value);
            };

            this.conversionCallbacks.Setup(x => x.DefaultConversionCallback).Returns(defaultCallback);

            this.extensionPropertyReflector.Setup(x => x.Reflect(It.IsAny <IExtension>())).Returns(new List <PropertyInfo> {
                GetSomePropertyPropertyInfo()
            });
            this.consumer.Setup(x => x.Configuration).Returns(new Dictionary <string, string> {
                { SomeExtensionPropertyName, SomeExtensionPropertyValue }
            });

            var someExtension = new SomeExtension();

            this.testee.Assign(this.extensionPropertyReflector.Object, someExtension, this.consumer.Object, this.conversionCallbacks.Object);

            wasCalled.Should().BeTrue();
            someExtension.SomeProperty.Should().Be(SomeExtensionPropertyValue);
        }
示例#2
0
        public void Assign_WhenReflectedPropertyMatchesConfiguration_ShouldAcquireCallback()
        {
            bool wasCalled = false;

            var dictionary = new Dictionary <string, Func <string, PropertyInfo, object> >
            {
                {
                    SomeExtensionPropertyName, (value, info) =>
                    {
                        wasCalled = true;
                        return(value);
                    }
                }
            };

            this.conversionCallbacks.Setup(x => x.ConversionCallbacks).Returns(dictionary);

            this.extensionPropertyReflector.Setup(x => x.Reflect(It.IsAny <IExtension>())).Returns(new List <PropertyInfo> {
                GetSomePropertyPropertyInfo()
            });
            this.consumer.Setup(x => x.Configuration).Returns(new Dictionary <string, string> {
                { SomeExtensionPropertyName, SomeExtensionPropertyValue }
            });

            var someExtension = new SomeExtension();

            this.testee.Assign(this.extensionPropertyReflector.Object, someExtension, this.consumer.Object, this.conversionCallbacks.Object);

            wasCalled.Should().BeTrue();
            someExtension.SomeProperty.Should().Be(SomeExtensionPropertyValue);
        }
        public void Assign_WhenReflectedPropertyMatchesConfiguration_ShouldAcquireCallback()
        {
            this.SetupConversionCallbackReturnsInput();

            var dictionary = new Dictionary <string, IConversionCallback> {
                { SomeExtensionPropertyName, this.conversionCallback }
            };

            A.CallTo(() => this.conversionCallbacksProvider.ConversionCallbacks).Returns(dictionary);

            PropertyInfo propertyInfo = GetSomePropertyPropertyInfo();

            A.CallTo(() => this.extensionPropertyReflector.Reflect(A <IExtension> ._)).Returns(new List <PropertyInfo> {
                propertyInfo
            });
            A.CallTo(() => this.consumer.Configuration).Returns(new Dictionary <string, string> {
                { SomeExtensionPropertyName, SomeExtensionPropertyValue }
            });

            var someExtension = new SomeExtension();

            this.testee.Assign(this.extensionPropertyReflector, someExtension, this.consumer, this.conversionCallbacksProvider, this.defaultConversionCallbackProvider);

            A.CallTo(() => this.conversionCallback.Convert(SomeExtensionPropertyValue, propertyInfo)).MustHaveHappened();
            someExtension.SomeProperty.Should().Be(SomeExtensionPropertyValue);
        }
        public void Assign_WhenReflectedPropertyMatchesConfiguration_ShouldAcquireCallback()
        {
            this.SetupConversionCallbackReturnsInput();

            var dictionary = new Dictionary <string, IConversionCallback> {
                { SomeExtensionPropertyName, this.conversionCallback.Object }
            };

            this.conversionCallbacksProvider.Setup(x => x.ConversionCallbacks).Returns(dictionary);

            PropertyInfo propertyInfo = GetSomePropertyPropertyInfo();

            this.extensionPropertyReflector.Setup(x => x.Reflect(It.IsAny <IExtension>())).Returns(new List <PropertyInfo> {
                propertyInfo
            });
            this.consumer.Setup(x => x.Configuration).Returns(new Dictionary <string, string> {
                { SomeExtensionPropertyName, SomeExtensionPropertyValue }
            });

            var someExtension = new SomeExtension();

            this.testee.Assign(this.extensionPropertyReflector.Object, someExtension, this.consumer.Object, this.conversionCallbacksProvider.Object, this.defaultConversionCallbackProvider.Object);

            this.conversionCallback.Verify(callback => callback.Convert(SomeExtensionPropertyValue, propertyInfo));
            someExtension.SomeProperty.Should().Be(SomeExtensionPropertyValue);
        }
        public void Assign_WhenReflectedPropertyMatchesConfiguration_ShouldAcquireCallback()
        {
            this.SetupConversionCallbackReturnsInput();

            var dictionary = new Dictionary<string, IConversionCallback> { { SomeExtensionPropertyName, this.conversionCallback.Object } };
            this.conversionCallbacksProvider.Setup(x => x.ConversionCallbacks).Returns(dictionary);

            PropertyInfo propertyInfo = GetSomePropertyPropertyInfo();
            this.extensionPropertyReflector.Setup(x => x.Reflect(It.IsAny<IExtension>())).Returns(new List<PropertyInfo> { propertyInfo });
            this.consumer.Setup(x => x.Configuration).Returns(new Dictionary<string, string> { { SomeExtensionPropertyName, SomeExtensionPropertyValue } });

            var someExtension = new SomeExtension();
            this.testee.Assign(this.extensionPropertyReflector.Object, someExtension, this.consumer.Object, this.conversionCallbacksProvider.Object, this.defaultConversionCallbackProvider.Object);

            this.conversionCallback.Verify(callback => callback.Convert(SomeExtensionPropertyValue, propertyInfo));
            someExtension.SomeProperty.Should().Be(SomeExtensionPropertyValue);
        }
        public void Assign_WhenReflectedPropertyMatchesConfiguration_ShouldAcquireCallback()
        {
            bool wasCalled = false;

            var dictionary = new Dictionary<string, Func<string, PropertyInfo, object>>
                {
                    {
                        SomeExtensionPropertyName, (value, info) =>
                            {
                                wasCalled = true;
                                return value;
                            }
                        }
                };

            this.conversionCallbacks.Setup(x => x.ConversionCallbacks).Returns(dictionary);

            this.extensionPropertyReflector.Setup(x => x.Reflect(It.IsAny<IExtension>())).Returns(new List<PropertyInfo> { GetSomePropertyPropertyInfo() });
            this.consumer.Setup(x => x.Configuration).Returns(new Dictionary<string, string> { { SomeExtensionPropertyName, SomeExtensionPropertyValue } });

            var someExtension = new SomeExtension();
            this.testee.Assign(this.extensionPropertyReflector.Object, someExtension, this.consumer.Object, this.conversionCallbacks.Object);

            wasCalled.Should().BeTrue();
            someExtension.SomeProperty.Should().Be(SomeExtensionPropertyValue);
        }
        public void Assign_WhenNoConversionCallbackFound_ShouldUseDefaultCallback()
        {
            this.conversionCallbacks.Setup(x => x.ConversionCallbacks).Returns(
                new Dictionary<string, Func<string, PropertyInfo, object>>());

            bool wasCalled = false;
            Func<string, PropertyInfo, object> defaultCallback = (value, info) =>
            {
                wasCalled = true;
                return value;
            };
            this.conversionCallbacks.Setup(x => x.DefaultConversionCallback).Returns(defaultCallback);

            this.extensionPropertyReflector.Setup(x => x.Reflect(It.IsAny<IExtension>())).Returns(new List<PropertyInfo> { GetSomePropertyPropertyInfo() });
            this.consumer.Setup(x => x.Configuration).Returns(new Dictionary<string, string> { { SomeExtensionPropertyName, SomeExtensionPropertyValue } });

            var someExtension = new SomeExtension();
            this.testee.Assign(this.extensionPropertyReflector.Object, someExtension, this.consumer.Object, this.conversionCallbacks.Object);

            wasCalled.Should().BeTrue();
            someExtension.SomeProperty.Should().Be(SomeExtensionPropertyValue);
        }