public void IncomingParameterMatchesDeclaredParameterCaseInsensitively_SetsValue() { // Arrange var parameterCollection = new ParameterCollectionBuilder { { nameof(HasInstanceProperties.IntProp).ToLowerInvariant(), 123 } }.Build(); var target = new HasInstanceProperties(); // Act parameterCollection.SetParameterProperties(target); // Assert Assert.Equal(123, target.IntProp); }
public void IncomingParameterMatchesPropertyNotDeclaredAsParameter_Throws() { // Arrange var target = new HasPropertyWithoutParameterAttribute(); var parameterCollection = new ParameterCollectionBuilder { { nameof(HasPropertyWithoutParameterAttribute.IntProp), 123 }, }.Build(); // Act var ex = Assert.Throws <InvalidOperationException>( () => parameterCollection.SetParameterProperties(target)); // Assert Assert.Equal(default, target.IntProp);
public void IncomingParameterMatchesInheritedDeclaredParameter_SetsValue() { // Arrange var parameterCollection = new ParameterCollectionBuilder { { nameof(HasInheritedProperties.IntProp), 123 }, { nameof(HasInheritedProperties.DerivedClassIntProp), 456 }, }.Build(); var target = new HasInheritedProperties(); // Act parameterCollection.SetParameterProperties(target); // Assert Assert.Equal(123, target.IntProp); Assert.Equal(456, target.DerivedClassIntProp); }
public void IncomingParameterMatchesNoDeclaredParameter_Throws() { // Arrange var target = new HasPropertyWithoutParameterAttribute(); var parameterCollection = new ParameterCollectionBuilder { { "AnyOtherKey", 123 }, }.Build(); // Act var ex = Assert.Throws <InvalidOperationException>( () => parameterCollection.SetParameterProperties(target)); // Assert Assert.Equal( $"Object of type '{typeof(HasPropertyWithoutParameterAttribute).FullName}' does not have a property " + $"matching the name 'AnyOtherKey'.", ex.Message); }
public void IncomingParameterMatchesAnnotatedPrivateProperty_SetsValue() { // Arrange var someObject = new object(); var parameterCollection = new ParameterCollectionBuilder { { nameof(HasInstanceProperties.IntProp), 123 }, { nameof(HasInstanceProperties.StringProp), "Hello" }, { HasInstanceProperties.ObjectPropName, someObject }, }.Build(); var target = new HasInstanceProperties(); // Act parameterCollection.SetParameterProperties(target); // Assert Assert.Equal(123, target.IntProp); Assert.Equal("Hello", target.StringProp); Assert.Same(someObject, target.ObjectPropCurrentValue); }
public void NoIncomingParameterMatchesDeclaredParameter_LeavesValueUnchanged() { // Arrange var existingObjectValue = new object(); var target = new HasInstanceProperties { IntProp = 456, StringProp = "Existing value", ObjectPropCurrentValue = existingObjectValue }; var parameterCollection = new ParameterCollectionBuilder().Build(); // Act parameterCollection.SetParameterProperties(target); // Assert Assert.Equal(456, target.IntProp); Assert.Equal("Existing value", target.StringProp); Assert.Same(existingObjectValue, target.ObjectPropCurrentValue); }