public void ShouldForwardArgs() { var handler = new WeakEvent<EventHandler<EventArgs1>>(); handler.Add(EventReceiver1.Callback); var args = new EventArgs1(2); handler.Raise(null, args); Assert.That(EventReceiver1.Args, Is.EqualTo(args)); }
public void Callback(object sender, EventArgs1 args) { Sender = sender; Args = args; CallCounter++; }
public void ShouldForwardSender() { var handler = new WeakEvent<EventHandler<EventArgs1>>(); handler.Add(EventReceiver1.Callback); var args = new EventArgs1(2); var sender = new object(); handler.Raise(sender, args); Assert.That(EventReceiver1.Sender, Is.EqualTo(sender)); }
public void ShouldIgnoreGarbageCollectedSubscribers() { var handler = new WeakEvent<EventHandler<EventArgs1>>(); var receiver = new EventReceiver1(); var receiverReference = new WeakReference(receiver); var args = new EventArgs1(2); var sender = new object(); handler.Add(receiver.Callback); handler.Raise(sender, args); receiver = null; GC.Collect(); Assert.That(receiverReference.IsAlive, Is.False); handler.Raise(sender, args); Assert.That(handler.ListenersCount, Is.EqualTo(0)); }