public void AddWeakHandler_WhenSubscriberDestroyed_Unsubscription() { var publisher = new Publisher(); WeakHelpers.ExecuteAndCollect(() => { var subscriber = new Subscriber(); publisher.AddWeakHandler <EventArgs>(nameof(publisher.Event), subscriber.OnEventRaised); }); publisher.RaiseEvent(); Assert.IsFalse(publisher.HasSubscriptions); }
public void AddWeakHandler_WhenPublisherRaises_SubscriberReceives() { var publisher = new Publisher(); var subscriber = new Subscriber(); publisher.AddWeakHandler <EventArgs>(nameof(publisher.Event), subscriber.OnEventRaised); int expected = 5; for (int i = 0; i < expected; i++) { publisher.RaiseEvent(); } Assert.AreEqual(expected, subscriber.RaisedEvents); }