Ejemplo n.º 1
0
        public void ReductionBindTriggersHandler()
        {
            // Arrange
            const int expected   = 2;
            var       collection = new ProperObservableCollection <Giraffe>();

            collection.BindCollective <Giraffe, int>(nameof(Giraffe.Property), OnCollectivePropertyChanged, Math.Min);
            int result = -1;

            void OnCollectivePropertyChanged(object sender, PropertyChangedEventArgs e)
            {
                result = ((PropertyMutatedEventArgs <int>)e).NewValue;
            }

            // Act
            collection.Add(new Giraffe()
            {
                Property = expected + 1
            });
            collection.Add(new Giraffe()
            {
                Property = expected
            });

            Assert.AreEqual(expected, result);
        }
Ejemplo n.º 2
0
        public void PropertyOnCollectionChangedIsPropagated()
        {
            bool eventHandlerInvoked = false;
            var  collection          = new ProperObservableCollection <Giraffe>();

            collection.Bind(nameof(Giraffe.Property), (sender, e) =>
            {
                eventHandlerInvoked = true;
            });
            collection.Add(new Giraffe());

            Assert.IsFalse(eventHandlerInvoked);
            collection[0].Property = 0;
            Assert.IsFalse(eventHandlerInvoked);
            collection[0].Property2 = 1;
            Assert.IsFalse(eventHandlerInvoked);
            collection[0].Property = 1;
            Assert.IsTrue(eventHandlerInvoked);
        }
Ejemplo n.º 3
0
        public void PropertyOnCollectionChangedIsNotPropagatedIfRemoved()
        {
            //Arrange
            bool eventHandlerInvoked = false;
            var  collection          = new ProperObservableCollection <Giraffe>();

            collection.Bind(nameof(Giraffe.Property), (sender, e) =>
            {
                eventHandlerInvoked = true;
            });
            var giraffe = new Giraffe();

            collection.Add(giraffe);

            //Act
            collection.Remove(giraffe);
            giraffe.Property = 1;

            //Assert
            Assert.IsFalse(eventHandlerInvoked);
        }