public void ConfigureServices_need_CallLoadFromLoader_and_Initalize()
        {
            var plugin = new ModuleStub();

            var loaderMock = new Mock<IPluginLoader>();
            loaderMock.Setup(l => l.LoadPlugins()).Returns(new[] { plugin });

            var serviceCollection = new ServiceCollection();
            var target = new PluginManager(loaderMock.Object);

            target.ConfigureServices(serviceCollection);

            loaderMock.Verify(l => l.LoadPlugins(), Times.Once);
            Assert.True(plugin.ConfigureServicesCalled, "CofigureServices not called");
        }
        public void Configure_need_CallConfigureInPlugin()
        {
            var plugin = new ModuleStub();

            var loaderMock = new Mock<IPluginLoader>();
            loaderMock.Setup(l => l.LoadPlugins()).Returns(new[] { plugin });

            var serviceCollection = new ServiceCollection();
            var target = new PluginManager(loaderMock.Object);

            target.ConfigureServices(serviceCollection);
            target.Configure(new Mock<IApplicationBuilder>().Object);

            Assert.True(plugin.ConfigureCalled, "Cofigure not called");
        }