public void Register_Unregister()
        {
            var bus     = new DefaultEventBus();
            var handler = new CatchAllHandler(null, null);

            bus.RegisterCatchAllHandler(handler);
            var catchAllHandlers = bus.GetCatchAllHandlers().ToArray();

            Assert.IsTrue(catchAllHandlers.Length == 1, "One catch-all");
            Assert.IsTrue(catchAllHandlers[0].Equals(handler), "Types ok");

            bus.UnregisterCatchAllHandler(handler);
            catchAllHandlers = bus.GetCatchAllHandlers().ToArray();

            Assert.IsTrue(catchAllHandlers.Length == 0, "No catch-all");
        }
        public void Subscribe_Unsubscribe()
        {
            var bus     = new DefaultEventBus();
            var handler = new LogEventHandler1(null);

            bus.Subscribe <LogEvent, LogEventHandler1>(handler);
            var handlers = bus.GetHandlers <LogEvent>().ToArray();

            Assert.IsTrue(bus.GetCatchAllHandlers().Count() == 0, "No catch-all");
            Assert.IsTrue(handlers.Length == 1, "one handler");
            Assert.IsTrue(handlers[0].Equals(handler), "types ok");

            bus.Unsubscribe <LogEvent, LogEventHandler1>(handler);
            handlers = bus.GetHandlers <LogEvent>().ToArray();

            Assert.IsTrue(bus.GetCatchAllHandlers().Count() == 0, "No catch-all again");
            Assert.IsTrue(handlers.Length == 0, "no handler");
        }