ExpressiveInstallerTest\TemplateRenderersTest::testTemplateRenderer PHP Method

testTemplateRenderer() public method

public testTemplateRenderer ( $containerOption, $routerOption, $templateRendererOption, $copyFilesKey, $expectedResponseStatusCode, $expectedTemplateRenderer )
    public function testTemplateRenderer($containerOption, $routerOption, $templateRendererOption, $copyFilesKey, $expectedResponseStatusCode, $expectedTemplateRenderer)
    {
        $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);
        // Install template engine
        $templateEngineResult = OptionalPackages::processAnswer($io->reveal(), $config['questions']['template-engine'], $templateRendererOption, $copyFilesKey);
        $this->assertTrue($templateEngineResult);
        // Test container
        $container = $this->getContainer();
        $this->assertTrue($container->has(Expressive\Application::class));
        $this->assertTrue($container->has('Zend\\Expressive\\FinalHandler'));
        // Test config
        $config = $container->get('config');
        $this->assertEquals(Expressive\Container\TemplatedErrorHandlerFactory::class, $config['dependencies']['factories']['Zend\\Expressive\\FinalHandler']);
        // Test template renderer
        $templateRenderer = $container->get(Expressive\Template\TemplateRendererInterface::class);
        $this->assertInstanceOf(Expressive\Template\TemplateRendererInterface::class, $templateRenderer);
        $this->assertInstanceOf($expectedTemplateRenderer, $templateRenderer);
        if ($copyFilesKey == 'copy-files') {
            // Test home page for full install only, otherwise you get invalid template name errors
            $response = $this->getAppResponse();
            $this->assertEquals($expectedResponseStatusCode, $response->getStatusCode());
        }
    }