public void TestSetProperty() { int propertyValue = 0; var viewmodel = new TestViewModel(); String rPropertyName = null; viewmodel.PropertyChanged += (s, e) => rPropertyName = e.PropertyName; Assert.True(viewmodel.CallSetProperty(ref propertyValue, 123, "TestProperty")); Assert.Equal("TestProperty", rPropertyName); Assert.Equal(123, propertyValue); rPropertyName = null; propertyValue = 0; Assert.False(viewmodel.CallSetProperty(ref propertyValue, 0, "TestProperty")); Assert.Null(rPropertyName); Assert.Equal(0, propertyValue); rPropertyName = null; propertyValue = 0; Assert.True(viewmodel.CallSetProperty(ref propertyValue, 123, () => viewmodel.PropertyOne)); Assert.Equal("PropertyOne", rPropertyName); Assert.Equal(123, propertyValue); rPropertyName = null; propertyValue = 0; Assert.False(viewmodel.CallSetProperty(ref propertyValue, 0, () => viewmodel.PropertyOne)); Assert.Null(rPropertyName); Assert.Equal(0, propertyValue); }