[FrameworkBundle] Add a unit test for the TemplateFinder class

This commit is contained in:
Victor Berchet 2011-04-18 17:35:14 +02:00
parent 33dd89fd02
commit 209b95f232
7 changed files with 65 additions and 0 deletions

View File

@ -0,0 +1,9 @@
<?php
namespace Symfony\Bundle\FrameworkBundle\Tests\Fixtures\BaseBundle;
use Symfony\Component\HttpKernel\Bundle\Bundle;
class BaseBundle extends Bundle
{
}

View File

@ -0,0 +1,56 @@
<?php
/*
* This file is part of the Symfony package.
*
* (c) Fabien Potencier <fabien@symfony.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Symfony\Bundle\FrameworkBundle\Tests\Templating\Loader;
use Symfony\Bundle\FrameworkBundle\Tests\TestCase;
use Symfony\Bundle\FrameworkBundle\Templating\TemplateNameParser;
use Symfony\Bundle\FrameworkBundle\Templating\Loader\TemplateFinder;
use Symfony\Bundle\FrameworkBundle\Tests\Fixtures\BaseBundle\BaseBundle;
class TemplateFinderTest extends TestCase
{
public function testFindAllTemplates()
{
$kernel = $this
->getMockBuilder('Symfony\Component\HttpKernel\Kernel')
->disableOriginalConstructor()
->getMock()
;
$kernel
->expects($this->any())
->method('getBundle')
;
$kernel
->expects($this->once())
->method('getBundles')
->will($this->returnValue(array('BaseBundle' => new BaseBundle())))
;
$parser = new TemplateNameParser($kernel);
$finder = new TemplateFinder($kernel, $parser, __DIR__.'/../../Fixtures/Resources');
$templates = array_map(
function ($template) { return $template->getLogicalName(); },
$finder->findAllTemplates()
);
$this->assertEquals(3, count($templates), '->findAllTemplates() find all templates in the bundles and global folders');
$this->assertContains('BaseBundle::base.format.engine', $templates);
$this->assertContains('BaseBundle:controller:base.format.engine', $templates);
$this->assertContains('::resource.format.engine', $templates);
}
}