public void TestBroadcastsToSubscribers()
        {
            var testEventArgsOne = new TestEventArgsOne();

            var universalEventBus = new UniversalEventBus();

            universalEventBus.Subscribe <TestEventArgsOne>(EventHandlerOne);

            universalEventBus.Broadcast(testEventArgsOne);

            Assert.AreEqual(testEventArgsOne, _argsOneRecieved);
        }
        public void TestUnsubscribes()
        {
            var testEventArgsOne = new TestEventArgsOne();

            var universalEventBus = new UniversalEventBus();

            universalEventBus.Subscribe <TestEventArgsOne>(EventHandlerOne);
            universalEventBus.Unsubscribe <TestEventArgsOne>(EventHandlerOne);

            universalEventBus.Broadcast(testEventArgsOne);

            Assert.IsNull(_argsOneRecieved);
        }
        public void TestSelectivelySendsMessages()
        {
            var testEventArgsOne = new TestEventArgsOne();
            var testEventArgsTwo = new TestEventArgsTwo();

            var universalEventBus = new UniversalEventBus();

            universalEventBus.Subscribe <TestEventArgsOne>(EventHandlerOne);
            universalEventBus.Subscribe <TestEventArgsTwo>(EventHandlerTwo);

            universalEventBus.Broadcast(testEventArgsOne);

            Assert.AreSame(testEventArgsOne, _argsOneRecieved);
            Assert.IsNull(_argsTwoRecieved);

            universalEventBus.Broadcast(testEventArgsTwo);
            Assert.AreSame(testEventArgsTwo, _argsTwoRecieved);
        }
 private void EventHandlerOne(TestEventArgsOne args)
 {
     _argsOneRecieved = args;
 }
 public void Setup()
 {
     _argsOneRecieved = null;
     _argsTwoRecieved = null;
 }
 public void Handle(TestEventArgsOne args)
 {
     _argsRecieved = args;
 }