public void SelectInvariantPlugIn()
        {
            var manager = new PlugInManager();

            manager.RegisterPlugIn <IPacketHandlerPlugIn, PacketHandlerInvariant>();
            var clientVersionProvider = new Mock <IClientVersionProvider>();

            clientVersionProvider.Setup(p => p.ClientVersion).Returns(Season6E3English);
            var containerForSeason6 = new MainPacketHandlerPlugInContainer(clientVersionProvider.Object, manager);

            containerForSeason6.Initialize();
            var handler = containerForSeason6[HandlerKey];

            Assert.That(handler.GetType(), Is.EqualTo(typeof(PacketHandlerInvariant)));
        }
        public void SelectPlugInOfCorrectVersionWhenLowerVersionsAreAvailable()
        {
            var manager = new PlugInManager();

            manager.RegisterPlugIn <IPacketHandlerPlugIn, PacketHandlerSeason1>();
            manager.RegisterPlugIn <IPacketHandlerPlugIn, PacketHandlerSeason6>();
            var clientVersionProvider = new Mock <IClientVersionProvider>();

            clientVersionProvider.Setup(p => p.ClientVersion).Returns(Season9E2English);
            var containerForSeason9 = new MainPacketHandlerPlugInContainer(clientVersionProvider.Object, manager);

            containerForSeason9.Initialize();
            var handler = containerForSeason9[HandlerKey];

            Assert.That(handler.GetType(), Is.EqualTo(typeof(PacketHandlerSeason6)));
        }
        public void SelectPlugInOfCorrectLanguage()
        {
            var manager = new PlugInManager(null, new NullLoggerFactory(), null);

            manager.RegisterPlugIn <IPacketHandlerPlugIn, PacketHandlerSeason6Chinese>();
            manager.RegisterPlugIn <IPacketHandlerPlugIn, PacketHandlerSeason6>();
            var clientVersionProvider = new Mock <IClientVersionProvider>();

            clientVersionProvider.Setup(p => p.ClientVersion).Returns(Season6E3English);
            var containerForSeason6 = new MainPacketHandlerPlugInContainer(clientVersionProvider.Object, manager, new NullLoggerFactory());

            containerForSeason6.Initialize();
            var handler = containerForSeason6[HandlerKey];

            Assert.That(handler.GetType(), Is.EqualTo(typeof(PacketHandlerSeason6)));
        }