private static bool HandlePropertyChangedBehaviorWasCalled(ChangeArgs args) { var mock = new PropertyChangedMock(); var vm = ViewModelStub .WithProperties(PropertyStub .WithBehaviors(mock) .Build()) .Build(); vm.GetContext().NotifyChange(args); return(mock.PropertyChangedWasCalled); }
public void Execute(string expectedPropertyName, Action <long> setter, Func <long> getter) { _callbackTriggered = 0; _mock = new(); _mock.PropertyChanged += (sender, e) => { _callbackTriggered++; Assert.AreEqual(expectedPropertyName, e.PropertyName); Assert.AreSame(_mock, sender); }; Assert.AreEqual(0, getter()); Assert.AreEqual(0, _callbackTriggered); setter(2); Assert.AreEqual(2, getter()); Assert.AreEqual(1, _callbackTriggered); setter(2); Assert.AreEqual(2, getter()); Assert.AreEqual(1, _callbackTriggered); setter(3); Assert.AreEqual(3, getter()); Assert.AreEqual(2, _callbackTriggered); }
public void NotifyChange_CallsHandlePropertyChangedBehaviorOnlyIfOwnPropertyHasChanged() { var mock = new PropertyChangedMock(); var property = PropertyStub .WithBehaviors(mock) .Build(); var vm = ViewModelStub .WithProperties(property) .Build(); var context = vm.GetContext(); var args = ChangeArgs.PropertyChanged(property, ValueStage.ValidatedValue); context.NotifyChange(args); Assert.IsTrue(mock.PropertyChangedWasCalled); mock.PropertyChangedWasCalled = false; args = ChangeArgs .PropertyChanged(property, ValueStage.ValidatedValue) .PrependViewModel(ViewModelStub.Build()); context.NotifyChange(args); Assert.IsFalse(mock.PropertyChangedWasCalled); mock.PropertyChangedWasCalled = false; args = ChangeArgs.ValidationResultChanged(property, ValueStage.Value); context.NotifyChange(args); Assert.IsFalse(mock.PropertyChangedWasCalled); mock.PropertyChangedWasCalled = false; args = ChangeArgs.ItemsAdded(VMCollectionStub.Build(), new[] { ViewModelStub.Build() }); context.NotifyChange(args); Assert.IsFalse(mock.PropertyChangedWasCalled); }