Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }