public function testContainer($containerOption, $routerOption, $copyFilesKey, $expectedResponseStatusCode, $expectedContainer)
{
$io = $this->prophesize('Composer\\IO\\IOInterface');
$config = $this->getConfig();
// Install container
$containerResult = OptionalPackages::processAnswer($io->reveal(), $config['questions']['container'], $containerOption, $copyFilesKey);
$this->assertTrue($containerResult);
// Install router
$routerResult = OptionalPackages::processAnswer($io->reveal(), $config['questions']['router'], $routerOption, $copyFilesKey);
$this->assertTrue($routerResult);
// Test container
$container = $this->getContainer();
$this->assertInstanceOf(ContainerInterface::class, $container);
$this->assertInstanceOf($expectedContainer, $container);
$this->assertTrue($container->has(Expressive\Helper\UrlHelper::class));
$this->assertTrue($container->has(Expressive\Helper\ServerUrlHelper::class));
$this->assertTrue($container->has(Expressive\Application::class));
$this->assertTrue($container->has(Expressive\Router\RouterInterface::class));
// Test home page
$response = $this->getAppResponse();
$this->assertEquals($expectedResponseStatusCode, $response->getStatusCode());
}