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