public function testRouter($containerOption, $routerOption, $copyFilesKey, $expectedResponseStatusCode, $expectedRoutes, $expectedRouter)
{
$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->assertTrue($container->has(Router\RouterInterface::class));
// Test config
$config = $container->get('config');
$this->assertEquals($expectedRouter, $config['dependencies']['invokables'][Router\RouterInterface::class]);
$this->assertEquals($expectedRoutes, $config['routes']);
// Test home page
$response = $this->getAppResponse();
$this->assertEquals($expectedResponseStatusCode, $response->getStatusCode());
}