{
var filter = new PostFilterRule();
- string changedPropeyty = null;
+ Assert.PropertyChanged(
+ filter, "FilterName",
+ () => filter.FilterName = "hogehoge"
+ );
- filter.PropertyChanged += (_, x) => changedPropeyty = x.PropertyName;
- filter.FilterName = "hogehoge";
-
- Assert.Equal("FilterName", changedPropeyty);
Assert.True(filter.IsDirty);
}
filter.FilterName = "hogehoge";
filter.Compile();
- string changedPropeyty = null;
-
// 値に変化がないので PropertyChanged イベントは発生しない
- filter.PropertyChanged += (_, x) => changedPropeyty = x.PropertyName;
- filter.FilterName = "hogehoge";
+ TestUtils.NotPropertyChanged(
+ filter, "FilterName",
+ () => filter.FilterName = "hogehoge"
+ );
- Assert.Null(changedPropeyty);
Assert.False(filter.IsDirty);
}
}
}
+ public static void NotPropertyChanged(INotifyPropertyChanged @object, string propertyName, Action testCode)
+ {
+ PropertyChangedEventHandler handler = (s, e) =>
+ {
+ if (s == @object && e.PropertyName == propertyName)
+ throw new Xunit.Sdk.PropertyChangedException(propertyName);
+ };
+
+ try
+ {
+ @object.PropertyChanged += handler;
+ testCode();
+ }
+ finally
+ {
+ @object.PropertyChanged -= handler;
+ }
+ }
+
public static MemoryImage CreateDummyImage()
{
using (var bitmap = new Bitmap(100, 100))