示例#1
0
        public void ShouldKeepWeakReferenceToOnCanExecuteChangedHandlers()
        {
            var command = new TestableCompositeCommand();

            var handlers       = new CanExecutChangeHandler();
            var weakHandlerRef = new WeakReference(handlers);

            command.CanExecuteChanged += handlers.CanExecuteChangeHandler;
            handlers = null;

            GC.Collect();

            Assert.IsFalse(weakHandlerRef.IsAlive);
        }
        public void ShouldKeepWeakReferenceToOnCanExecuteChangedHandlers()
        {
            var command = new TestableCompositeCommand();

            var handlers       = new CanExecutChangeHandler();
            var weakHandlerRef = new WeakReference(handlers);

            command.CanExecuteChanged += handlers.CanExecuteChangeHandler;
            handlers = null;

            GC.Collect();

            Assert.IsFalse(weakHandlerRef.IsAlive);
            Assert.IsNotNull(command); // Only here to ensure command survives optimizations and the GC.Collect
        }
        public void ShouldKeepStrongReferenceToOnCanExecuteChangedHandlers()
        {
            var command = new DelegateCommand <MyClass>((MyClass c) => { });

            var handlers       = new CanExecutChangeHandler();
            var weakHandlerRef = new WeakReference(handlers);

            command.CanExecuteChanged += handlers.CanExecuteChangeHandler;
            handlers = null;

            GC.Collect();

            Assert.IsTrue(weakHandlerRef.IsAlive);
            Assert.IsNotNull(command); // Only here to ensure command survives optimizations and the GC.Collect
        }
示例#4
0
        public void ShouldKeepWeakReferenceToOnCanExecuteChangedHandlers()
        {
            var command = new DelegateCommand <MyClass>((MyClass c) => { });

            var handlers       = new CanExecutChangeHandler();
            var weakHandlerRef = new WeakReference(handlers);

            command.CanExecuteChanged += handlers.CanExecuteChangeHandler;
            handlers = null;

            GC.Collect();
            command.RaiseCanExecuteChanged();

            Assert.IsFalse(weakHandlerRef.IsAlive);
        }
        public void ShouldKeepWeakReferenceToOnCanExecuteChangedHandlers()
        {
            var command = new DelegateCommand<MyClass>((MyClass c) => { });

            var handlers = new CanExecutChangeHandler();
            var weakHandlerRef = new WeakReference(handlers);
            command.CanExecuteChanged += handlers.CanExecuteChangeHandler;
            handlers = null;

            GC.Collect();
            command.RaiseCanExecuteChanged();

            Assert.IsFalse(weakHandlerRef.IsAlive);
            Assert.IsNotNull(command); // Only here to ensure command survives optimizations and the GC.Collect
        }
示例#6
0
        public void ShouldKeepStrongReferenceToOnCanExecuteChangedHandlers()
        {
            var command = new TestableCompositeCommand();

            var handlers = new CanExecutChangeHandler();

            var weakHandlerRef = new WeakReference(handlers);
            Assert.IsTrue(weakHandlerRef.IsAlive, "FirstOne");

            command.CanExecuteChanged += handlers.CanExecuteChangeHandler;

            handlers = null;

            GC.Collect();

            Assert.IsTrue(weakHandlerRef.IsAlive);
            Assert.IsNotNull(command); // Only here to ensure command survives optimizations and the GC.Collect
        }
示例#7
0
        public void ShouldKeepWeakReferenceToOnCanExecuteChangedHandlers()
        {
            var command = new DelegateCommand<MyClass>((MyClass c) => { });

            var handlers = new CanExecutChangeHandler();
            var weakHandlerRef = new WeakReference(handlers);
            command.CanExecuteChanged += handlers.CanExecuteChangeHandler;
            handlers = null;

            GC.Collect();
            command.RaiseCanExecuteChanged();
            
            Assert.IsFalse(weakHandlerRef.IsAlive);
        }
示例#8
0
        public void ShouldKeepWeakReferenceToOnCanExecuteChangedHandlers()
        {
            var command = new TestableCompositeCommand();

            var handlers = new CanExecutChangeHandler();
            var weakHandlerRef = new WeakReference(handlers);
            command.CanExecuteChanged += handlers.CanExecuteChangeHandler;
            handlers = null;

            GC.Collect();

            Assert.IsFalse(weakHandlerRef.IsAlive);
        }