public void ReturnsDisposable1() { Action <object, DateTime> action = (s, e) => { }; var result = new AppEventBus().Register(action, new object()); Assert.IsNotNull(result); result.Dispose(); Assert.IsTrue(result.IsDisposed); }
public void PublishesToAllRegistered() { // prepare bool a = false, b = false; var bus = new AppEventBus(); // execute bus.Register <DateTime>((s1, e1) => a = true); bus.Register <DateTime>((s2, e2) => b = true); bus.Publish(new object(), DateTime.Now); // verify Assert.IsTrue(a); Assert.IsTrue(b); }
public void DoesNotPublishToOthers() { // prepare bool a = false, b = false, c = false; var bus = new AppEventBus(); // execute bus.Register <DateTime>((s1, e1) => a = true); bus.Register <DateTime>((s2, e2) => b = true); bus.Register <TimeSpan>((s3, e3) => c = true); bus.Publish(new object(), DateTime.Now); // verify Assert.IsTrue(a); Assert.IsTrue(b); Assert.IsFalse(c); }
public void WorksManyTimes() { // prepare object o1 = new object(); bool a = false, b = false, c = false; var bus = new AppEventBus(); // execute bus.Register <DateTime>((s1, e1) => a = true); bus.Register <DateTime>((s2, e2) => b = true, o1); bus.Register <TimeSpan>((s3, e3) => c = true); bus.Publish(o1, DateTime.Now); // verify Assert.IsTrue(a); Assert.IsFalse(b); Assert.IsFalse(c); // execute a = b = c = false; bus.Publish(o1, DateTime.Now); // verify Assert.IsTrue(a); Assert.IsFalse(b); Assert.IsFalse(c); // execute a = b = c = false; bus.Publish(o1, DateTime.Now); // verify Assert.IsTrue(a); Assert.IsFalse(b); Assert.IsFalse(c); }