public void SetValue_IfInstanceIsNull_Throws() { // Arrange IPropertySetter <Poco, PocoProperty> product = CreateProductUnderTest <Poco, PocoProperty>( typeof(Poco).GetProperty("Value")); Poco instance = null; PocoProperty value = new PocoProperty(); // Act & Assert ExceptionAssert.ThrowsArgumentNull(() => product.SetValue(ref instance, value), "instance"); }
public void SetValue_IfPrivateProperty_UpdatesValue() { // Arrange IPropertySetter <Poco, PocoProperty> product = CreateProductUnderTest <Poco, PocoProperty>( typeof(Poco).GetProperty("PrivateValue", BindingFlags.NonPublic | BindingFlags.Instance)); Poco instance = new Poco(); PocoProperty expected = new PocoProperty(); // Act product.SetValue(ref instance, expected); // Assert PocoProperty actual = instance.PrivateValueAsPublic; Assert.Same(expected, actual); }
public void SetValue_UpdatesValue() { // Arrange IPropertySetter <Poco, PocoProperty> product = CreateProductUnderTest <Poco, PocoProperty>( typeof(Poco).GetProperty("Value")); Poco instance = new Poco(); PocoProperty expected = new PocoProperty(); // Act product.SetValue(ref instance, expected); // Assert PocoProperty actual = instance.Value; Assert.Same(expected, actual); }
public void GetValue_IfPrivateProperty_ReturnsValue() { // Arrange IPropertyGetter <PocoStruct, PocoProperty> product = CreateProductUnderTest <PocoStruct, PocoProperty>( typeof(PocoStruct).GetProperty("PrivateValue", BindingFlags.NonPublic | BindingFlags.Instance)); PocoProperty expected = new PocoProperty(); PocoStruct instance = new PocoStruct { PrivateValueAsPublic = expected }; // Act PocoProperty actual = product.GetValue(instance); // Assert Assert.Same(expected, actual); }
public void GetValue_ReturnsValue() { // Arrange IPropertyGetter <PocoStruct, PocoProperty> product = CreateProductUnderTest <PocoStruct, PocoProperty>( typeof(PocoStruct).GetProperty("Value")); PocoProperty expected = new PocoProperty(); PocoStruct instance = new PocoStruct { Value = expected }; // Act PocoProperty actual = product.GetValue(instance); // Assert Assert.Same(expected, actual); }