Skip to content

Commit

Permalink
[FrameworkBundle] Add unit tests for the TemplateLocator class
Browse files Browse the repository at this point in the history
  • Loading branch information
vicb committed Apr 8, 2011
1 parent 87000a1 commit 27a327e
Showing 1 changed file with 67 additions and 0 deletions.
@@ -0,0 +1,67 @@
<?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\Templating\Loader\TemplateLocator;
use Symfony\Bundle\FrameworkBundle\Templating\TemplateReference;
use Symfony\Bundle\FrameworkBundle\Tests\TestCase;

class TemplateLocatorTest extends TestCase
{
public function testLocateATemplate()
{
$template = new TemplateReference('bundle', 'controller', 'name', 'format', 'engine');

$fileLocator = $this->getFileLocator();

$fileLocator
->expects($this->once())
->method('locate')
->with($template->getPath(), '/path/to/fallback')
->will($this->returnValue('/path/to/template'))
;

$locator = new TemplateLocator($fileLocator, '/path/to/fallback');

$this->assertEquals('/path/to/template', $locator->locate($template));
}

/**
* @expectedException \InvalidArgumentException
*/
public function testThrowsExceptionWhenTemplateNotFound()
{
$template = new TemplateReference('bundle', 'controller', 'name', 'format', 'engine');

$fileLocator = $this->getFileLocator();

$fileLocator
->expects($this->once())
->method('locate')
->will($this->throwException(new \InvalidArgumentException()))
;

$locator = new TemplateLocator($fileLocator, '/path/to/fallback');

$locator->locate($template);
}

protected function getFileLocator()
{
return $this
->getMockBuilder('Symfony\Component\Config\FileLocator')
->setMethods(array('locate'))
->setConstructorArgs(array('/path/to/fallback'))
->getMock()
;
}
}

0 comments on commit 27a327e

Please sign in to comment.