public void RegisterStaticAndNonStatic()
        {
            // Static
            bool wasStaticCalled = false;

            EventHandlerStatic.s_OnStaticHandlerCalled = packet =>
            {
                wasStaticCalled = true;
                Assert.Equal(m_Packet, packet);
            };
            m_Dispatcher.RegisterPacketHandlers(typeof(EventHandlerStatic));

            // Non-static
            bool wasNonStaticCalled            = false;
            EventHandlerNonStatic eventHandler = new EventHandlerNonStatic();

            eventHandler.OnHandlerCalled = packet =>
            {
                wasNonStaticCalled = true;
                Assert.Equal(m_Packet, packet);
            };
            m_Dispatcher.RegisterPacketHandlers(eventHandler);

            m_Dispatcher.Dispatch(EConnectionState.Disconnected, m_Packet);
            Assert.True(wasStaticCalled);
            Assert.True(wasNonStaticCalled);
        }
        public void DuplicateNonStaticRegistrationFails()
        {
            EventHandlerNonStatic eventHandler = new EventHandlerNonStatic();

            m_Dispatcher.RegisterPacketHandlers(eventHandler);
            Assert.Throws <DuplicatePacketHandlerRegistration>(
                () => m_Dispatcher.RegisterPacketHandlers(eventHandler));
        }
        public void NonStaticHandlerRegister()
        {
            bool wasCalled = false;
            EventHandlerNonStatic eventHandler = new EventHandlerNonStatic();

            eventHandler.OnHandlerCalled = packet =>
            {
                wasCalled = true;
                Assert.Equal(m_Packet, packet);
            };
            m_Dispatcher.RegisterPacketHandlers(eventHandler);
            m_Dispatcher.Dispatch(EConnectionState.Disconnected, m_Packet);
            Assert.True(wasCalled);
        }