public void RaisesAdvancedPropertyChangedEvents_WhenSetViaDynamicProperty()
{
var counter = 0;
var propertyName = default(string);
var oldValue = default(object);
var newValue = default(object);
var observableObject = new CustomObject();
dynamic dynamicObservableObject = observableObject;
// Setting value via dynamic property.
dynamicObservableObject.Property1 = "oldtest";
observableObject.PropertyChanged += (sender, e) =>
{
AdvancedPropertyChangedEventArgs args = e as AdvancedPropertyChangedEventArgs;
if (args != null)
{
counter++;
propertyName = args.PropertyName;
oldValue = args.OldValue;
newValue = args.NewValue;
}
};
dynamicObservableObject.Property1 = "newtest";
Assert.AreEqual(1, counter);
Assert.AreEqual(propertyName, "Property1");
Assert.AreEqual(oldValue, "oldtest");
Assert.AreEqual(newValue, "newtest");
}