Ejemplo n.º 1
0
        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);
 }
Ejemplo n.º 3
0
        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);
        }