Beispiel #1
0
 protected Screen(bool load = true, object loadContext = null)
 {
     _propChangeManager = PropertyChangeManagerBuilder.GetPropertyChangeManager(this);
     if (load)
     {
         Load(loadContext);
     }
 }
        public void WhenStaticMethodIsSubscribed_ThenNotifiesSubscriber()
        {
            var foo     = new Foo();
            var manager = new PropertyChangeManager(foo);

            manager.SubscribeChanged((Expression <Func <Foo, object> >)(x => x.Name), (Action <Foo>)(OnStaticChanged));

            Assert.Throws <InvalidOperationException>(() => manager.NotifyChanged <Foo>(x => x.Name));
        }
        public void WhenDisposingStaticSubscription_ThenDoesNotNotifySubscriber()
        {
            var foo     = new Foo();
            var manager = new PropertyChangeManager(foo);

            var subscription = manager.SubscribeChanged((Expression <Func <Foo, object> >)(x => x.Name), (Action <Foo>)(OnStaticChanged));

            subscription.Dispose();

            manager.NotifyChanged <Foo>(x => x.Name);
        }
        public void WhenSubscriberIsAlive_ThenNotifiesSubscriber()
        {
            var notified = false;
            var foo      = new Foo();
            var manager  = new PropertyChangeManager(foo);

            manager.SubscribeChanged((Expression <Func <Foo, object> >)(x => x.Name), (Action <Foo>)(f => notified = true));

            manager.NotifyChanged <Foo>(x => x.Name);

            Assert.True(notified);
        }
        public void WhenSubscriberIsAlive_ThenNotifiesSubscriber()
        {
            var notified = false;
            var foo = new Foo();
            var manager = new PropertyChangeManager(foo);

            manager.SubscribeChanged((Expression<Func<Foo, object>>)(x => x.Name), (Action<Foo>)(f => notified = true));

            manager.NotifyChanged<Foo>(x => x.Name);

            Assert.True(notified);
        }
        public void WhenAddingPropertyChangedHandler_ThenNotifiesSubscriber()
        {
            var notified = false;
            var foo      = new Foo();
            var manager  = new PropertyChangeManager(foo);
            PropertyChangedEventHandler handler = (sender, args) => notified = true;

            manager.AddHandler(handler);

            manager.NotifyChanged <Foo>(x => x.Name);

            Assert.True(notified);
        }
        public void WhenAddingPropertyChangedHandler_ThenNotifiesSubscriber()
        {
            var notified = false;
            var foo = new Foo();
            var manager = new PropertyChangeManager(foo);
            PropertyChangedEventHandler handler = (sender, args) => notified = true;

            manager.AddHandler(handler);

            manager.NotifyChanged<Foo>(x => x.Name);

            Assert.True(notified);
        }
        public void WhenRemovingPropertyChangedHandler_ThenDoesNotNotifySubscriberAnymore()
        {
            var notified = false;
            var foo      = new Foo();
            var manager  = new PropertyChangeManager(foo);
            PropertyChangedEventHandler handler = (sender, args) => notified = true;

            manager.AddHandler(handler);
            manager.RemoveHandler(handler);

            manager.NotifyChanged <Foo>(x => x.Name);

            Assert.False(notified);
        }
        public void WhenRemovingPropertyChangedHandler_ThenDoesNotNotifySubscriberAnymore()
        {
            var notified = false;
            var foo = new Foo();
            var manager = new PropertyChangeManager(foo);
            PropertyChangedEventHandler handler = (sender, args) => notified = true;

            manager.AddHandler(handler);
            manager.RemoveHandler(handler);

            manager.NotifyChanged<Foo>(x => x.Name);

            Assert.False(notified);
        }
        public void WhenAddedPropertyChangedHandlerTargetIsNotAlive_ThenDoesNotNotify()
        {
            var foo        = new Foo();
            var manager    = new PropertyChangeManager(foo);
            var subscriber = new TestSubscriber("Name", 1);

            manager.AddHandler(subscriber.PropertyChangedHandler);
            manager.NotifyChanged <Foo>(x => x.Name);

            Assert.Equal(1, subscriber.ActualCalls);

            subscriber = null;
            GC.Collect();

            manager.NotifyChanged <Foo>(x => x.Name);
        }
        public void WhenSubscriberIsNotAlive_ThenDoesNotNotifySubscriber()
        {
            var foo        = new Foo();
            var manager    = new PropertyChangeManager(foo);
            var subscriber = new TestSubscriber("Name", 1);

            manager.SubscribeChanged((Expression <Func <Foo, object> >)(x => x.Name), (Action <Foo>)(subscriber.SubscriptionHandler));
            manager.NotifyChanged <Foo>(x => x.Name);

            Assert.Equal(1, subscriber.ActualCalls);

            subscriber = null;
            GC.Collect();

            manager.NotifyChanged <Foo>(x => x.Name);
        }
        public void WhenSubscriptionIsDisposed_ThenDoesNotNotifySubscriber()
        {
            var foo = new Foo();
            var manager = new PropertyChangeManager(foo);
            var subscriber = new TestSubscriber("Name", 1);

            var subscription = manager.SubscribeChanged((Expression<Func<Foo, object>>)(x => x.Name), (Action<Foo>)(subscriber.SubscriptionHandler));
            manager.NotifyChanged<Foo>(x => x.Name);

            Assert.Equal(1, subscriber.ActualCalls);

            subscription.Dispose();
            GC.Collect();

            manager.NotifyChanged<Foo>(x => x.Name);
        }
        public void WhenAddedPropertyChangedHandlerTargetIsNotAlive_ThenDoesNotNotify()
        {
            var foo = new Foo();
            var manager = new PropertyChangeManager(foo);
            var subscriber = new TestSubscriber("Name", 1);

            manager.AddHandler(subscriber.PropertyChangedHandler);
            manager.NotifyChanged<Foo>(x => x.Name);

            Assert.Equal(1, subscriber.ActualCalls);

            subscriber = null;
            GC.Collect();

            manager.NotifyChanged<Foo>(x => x.Name);
        }
        public void WhenDisposingStaticSubscription_ThenDoesNotNotifySubscriber()
        {
            var foo = new Foo();
            var manager = new PropertyChangeManager(foo);

            var subscription = manager.SubscribeChanged((Expression<Func<Foo, object>>)(x => x.Name), (Action<Foo>)(OnStaticChanged));
            subscription.Dispose();

            manager.NotifyChanged<Foo>(x => x.Name);
        }
        public void WhenStaticMethodIsSubscribed_ThenNotifiesSubscriber()
        {
            var foo = new Foo();
            var manager = new PropertyChangeManager(foo);

            manager.SubscribeChanged((Expression<Func<Foo, object>>)(x => x.Name), (Action<Foo>)(OnStaticChanged));

            Assert.Throws<InvalidOperationException>(() => manager.NotifyChanged<Foo>(x => x.Name));
        }
 public DatabaseSettings()
 {
     UnknownItems = new Dictionary<string, string>();
     this.propertyChanges = new PropertyChangeManager<DatabaseSettings>(this);
 }