public void NotifiesPropertyChangedOfDepedentProperties(string modelType, string propertyName, string newValue, string expectedPropertyName)
{
var type = AssemblyWeaver.Assembly.GetType(modelType);
var instance = Activator.CreateInstance(type);
var changedProperties = new List<string>();
((INotifyPropertyChanged) instance).PropertyChanged += (sender, args) => changedProperties.Add(args.PropertyName);
var propertyInfo = instance.GetType().GetProperty(propertyName);
propertyInfo.SetValue(instance, newValue);
var isPropertyChangedWorkingPropertyInfo = instance.GetType().GetProperty("IsPropertyChangedWorking");
if (isPropertyChangedWorkingPropertyInfo != null)
{
Assert.IsTrue((bool)isPropertyChangedWorkingPropertyInfo.GetValue(instance));
}
Assert.Contains(expectedPropertyName, changedProperties);
}
#endregion