public void can_subscribe(string label) { var sub = new LabelSubscription(); Action <Message> callback = msg => { }; sub.Subscribe(label, callback); var actual = sub.Subscribers(label); Assert.AreEqual(callback, actual); }
public void can_unsubscribe() { var sub = new LabelSubscription(); Action <Message> callback = msg => { }; var unsub = sub.Subscribe("fred", callback); unsub.Dispose(); var actual = sub.Subscribers("fred"); Assert.IsNull(actual); }
public void can_subscribe_multiple_times() { var sub = new LabelSubscription(); Action <Message> callback1 = msg => { }; Action <Message> callback2 = msg => { }; sub.Subscribe("fred", callback1); sub.Subscribe("fred", callback2); var actual = sub.Subscribers("fred"); var subscriptions = actual.GetInvocationList(); Assert.IsTrue(Array.IndexOf(subscriptions, callback1) >= 0); Assert.IsTrue(Array.IndexOf(subscriptions, callback2) >= 0); }