public void TwoCommandsTest()
 {
     var command1 = new ManualRelayCommand(o => { }, false);
     var subscriber1 = new CommandSubscriber(command1);
     var command2 = new ManualRelayCommand(o => { }, false);
     var subscriber2 = new CommandSubscriber(command2);
     command1.RaiseCanExecuteChanged();
     command2.RaiseCanExecuteChanged();
     Assert.AreEqual(1, subscriber1.Count);
     Assert.AreEqual(1, subscriber2.Count);
 }
 public void CheckWeakTest()
 {
     var command = new ManualRelayCommand(o => { }, false);
     var subscriber = new CommandSubscriber(command);
     WeakReference wr = new WeakReference(subscriber);
     Assert.IsTrue(wr.IsAlive);
     command.RaiseCanExecuteChanged();
     Assert.AreEqual(1, subscriber.Count);
     subscriber = null;
     GC.Collect();
     Assert.IsFalse(wr.IsAlive);
 }
 internal static void RemoveHandler(ManualRelayCommand source, EventHandler handler)
 {
     Manager.ProtectedRemoveHandler(source, handler);
 }