public void Unsubscribe_CountdownNull_ThrowsArgumentNullException() { var sub1 = new TestSubscriber1(); Assert.That(() => sub1.Unsubscribe(null), Throws.ArgumentNullException. With.Message.EqualTo(nullExceptionMessage)); }
public void Subscribe_NegativeWaitSeconds_ThrowsArgumentException() { var sub1 = new TestSubscriber1(); var cd = new Countdown(); Assert.That(() => sub1.Subscribe(cd, -1), Throws.ArgumentException. With.Message.EqualTo("You can't wait for negative number of seconds.\r\nParameter name: waitSeconds")); }
static void Main(string[] args) { Countdown cd = new Countdown(); var sub1 = new TestSubscriber1(); var sub2 = new TestSubscriber2(); sub1.Subscribe(cd, 4); sub2.Subscribe(cd, 2); cd.SendMessages(); }
public void TestMultipleSubscribersAllReceivingTheMessage() { var subscriber1 = new TestSubscriber1(); var subscriber2 = new TestSubscriber1(); MessageBusOf <TestMessage1> .AcceptSubscriber(subscriber1); MessageBusOf <TestMessage1> .AcceptSubscriber(subscriber2); MessageBusOf <TestMessage1> .Receive(new TestMessage1()); Assert.IsTrue(subscriber1.handlerWasExecuted); Assert.IsTrue(subscriber2.handlerWasExecuted); }
public void TestMultipleBussesNotInterferingWithEachother() { var subscriber1 = new TestSubscriber1(); var subscriber2 = new TestSubscriber2(); MessageBusOf <TestMessage1> .AcceptSubscriber(subscriber1); MessageBusOf <TestMessage2> .AcceptSubscriber(subscriber2); MessageBusOf <TestMessage2> .Receive(new TestMessage2()); Assert.IsTrue(subscriber2.handlerWasExecuted); Assert.IsFalse(subscriber1.handlerWasExecuted); // reset sub2's status subscriber2.handlerWasExecuted = false; MessageBusOf <TestMessage1> .Receive(new TestMessage1()); Assert.IsFalse(subscriber2.handlerWasExecuted); Assert.IsTrue(subscriber1.handlerWasExecuted); }