public void Reset()
 {
     _recipient = null;
     _recipientInternal = null;
     _recipientPrivate = null;
     _recipientReference = null;
 }
 public void Reset()
 {
     _recipient          = null;
     _recipientInternal  = null;
     _recipientPrivate   = null;
     _recipientReference = null;
 }
        public void TestGarbageCollectionForAnonymousMethodInternal()
        {
            Messenger.Reset();

            _recipientInternal  = new TestRecipientInternal(WeakActionTestCase.AnonymousMethod);
            _recipientReference = new WeakReference(_recipientInternal);

            Assert.AreEqual(null, _recipientInternal.Content);
            Assert.IsTrue(_recipientReference.IsAlive);

            const string message = "Hello world";

            Messenger.Default.Send(message);

            Assert.AreEqual(message, _recipientInternal.Content);

            _recipientInternal = null;
            GC.Collect();

#if SILVERLIGHT
            // Cannot GC the anonymous method reference in Silverlight
            Assert.IsTrue(_recipientReference.IsAlive);

            _recipientInternal = (TestRecipientInternal)_recipientReference.Target;
            Messenger.Default.Unregister(_recipientInternal);
            _recipientInternal = null;
            GC.Collect();
            Assert.IsFalse(_recipientReference.IsAlive);
#else
            Assert.IsFalse(_recipientReference.IsAlive);
#endif
        }
        public void TestGarbageCollectionForAnonymousMethodInternal()
        {
            Messenger.Reset();

            _recipientInternal = new TestRecipientInternal(WeakActionTestCase.AnonymousMethod);
            _recipientReference = new WeakReference(_recipientInternal);

            Assert.AreEqual(null, _recipientInternal.Content);
            Assert.IsTrue(_recipientReference.IsAlive);

            const string message = "Hello world";

            Messenger.Default.Send(message);

            Assert.AreEqual(message, _recipientInternal.Content);

            _recipientInternal = null;
            GC.Collect();
            Assert.IsFalse(_recipientReference.IsAlive);
        }
        public void TestGarbageCollectionForAnonymousStaticMethodInternal()
        {
            Messenger.Reset();
            TestRecipientInternal.Reset();

            _recipientInternal  = new TestRecipientInternal(WeakActionTestCase.AnonymousStaticMethod);
            _recipientReference = new WeakReference(_recipientInternal);

            Assert.AreEqual(null, TestRecipientInternal.ContentStatic);
            Assert.IsTrue(_recipientReference.IsAlive);

            const string message = "Hello world";

            Messenger.Default.Send(message);

            Assert.AreEqual(message, TestRecipientInternal.ContentStatic);

            _recipientInternal = null;
            GC.Collect();

            Assert.IsFalse(_recipientReference.IsAlive);
        }
        public void TestGarbageCollectionForAnonymousMethodInternal()
        {
            Messenger.Reset();

            _recipientInternal = new TestRecipientInternal(WeakActionTestCase.AnonymousMethod);
            _recipientReference = new WeakReference(_recipientInternal);

            Assert.AreEqual(null, _recipientInternal.Content);
            Assert.IsTrue(_recipientReference.IsAlive);

            const string message = "Hello world";

            Messenger.Default.Send(message);

            Assert.AreEqual(message, _recipientInternal.Content);

            _recipientInternal = null;
            GC.Collect();

#if SILVERLIGHT
            // Cannot GC the anonymous method reference in Silverlight
            Assert.IsTrue(_recipientReference.IsAlive);

            _recipientInternal = (TestRecipientInternal)_recipientReference.Target;
            Messenger.Default.Unregister(_recipientInternal);
            _recipientInternal = null;
            GC.Collect();
            Assert.IsFalse(_recipientReference.IsAlive);

#else
            Assert.IsFalse(_recipientReference.IsAlive);
#endif
        }