public function mockContaoFramework(RequestStack $requestStack = null, RouterInterface $router = null, array $adapters = [], array $instances = [])
{
$container = $this->mockContainerWithContaoScopes();
if (null === $requestStack) {
$requestStack = $container->get('request_stack');
}
if (null === $router) {
$router = $this->mockRouter('/index.html');
}
if (!isset($adapters['Contao\\Config'])) {
$adapters['Contao\\Config'] = $this->mockConfigAdapter();
}
if (!isset($adapters['Contao\\RequestToken'])) {
$adapters['Contao\\RequestToken'] = $this->mockRequestTokenAdapter();
}
if (!isset($adapters['Contao\\FilesModel'])) {
$adapters['Contao\\FilesModel'] = $this->mockFilesModelAdapter();
}
/** @var ContaoFramework|\PHPUnit_Framework_MockObject_MockObject $framework */
$framework = $this->getMockBuilder('Contao\\CoreBundle\\Framework\\ContaoFramework')->setConstructorArgs([$requestStack, $router, $this->mockSession(), $this->getRootDir() . '/app', error_reporting()])->setMethods(['getAdapter', 'createInstance'])->getMock();
$framework->expects($this->any())->method('getAdapter')->willReturnCallback(function ($key) use($adapters) {
return $adapters[$key];
});
$framework->expects($this->any())->method('createInstance')->willReturnCallback(function ($key) use($instances) {
return $instances[$key];
});
$framework->setContainer($container);
return $framework;
}