public void PurgeCausesChangeMessage()
{
var messenger = new MvxMessengerHub();
MvxSubscriberChangeMessage subscriberChangeMessage = null;
var changeToken = messenger.Subscribe<MvxSubscriberChangeMessage>(message => subscriberChangeMessage = message);
CreateShortLivedSubscription(messenger);
Assert.NotNull(subscriberChangeMessage);
Assert.AreEqual(1, subscriberChangeMessage.SubscriberCount);
Assert.AreEqual(typeof(TestMessage), subscriberChangeMessage.MessageType);
subscriberChangeMessage = null;
System.Threading.Thread.Sleep(100);
GC.Collect();
GC.WaitForFullGCComplete();
messenger.Publish(new TestMessage(this));
System.Threading.Thread.Sleep(100);
Assert.NotNull(subscriberChangeMessage);
Assert.AreEqual(0, subscriberChangeMessage.SubscriberCount);
Assert.AreEqual(typeof(TestMessage), subscriberChangeMessage.MessageType);
}