diff --git a/src/Bridge/Latte/SlugifyHelper.php b/src/Bridge/Latte/SlugifyHelper.php index 0e8dce4e..53924912 100644 --- a/src/Bridge/Latte/SlugifyHelper.php +++ b/src/Bridge/Latte/SlugifyHelper.php @@ -18,6 +18,9 @@ class SlugifyHelper /** @var SlugifyInterface */ private $slugify; + /** + * @codeCoverageIgnore + */ public function __construct(SlugifyInterface $slugify) { $this->slugify = $slugify; diff --git a/src/Bridge/Nette/SlugifyExtension.php b/src/Bridge/Nette/SlugifyExtension.php index c642a44c..c28c530a 100644 --- a/src/Bridge/Nette/SlugifyExtension.php +++ b/src/Bridge/Nette/SlugifyExtension.php @@ -24,7 +24,7 @@ public function loadConfiguration() ->setClass('Cocur\Slugify\SlugifyInterface') ->setFactory('Cocur\Slugify\Slugify'); - $builder->addDefinition($this->prefix('helpers')) + $builder->addDefinition($this->prefix('helper')) ->setClass('Cocur\Slugify\Bridge\Latte\SlugifyHelper') ->setInject(false); } @@ -35,7 +35,7 @@ public function beforeCompile() $self = $this; $registerToLatte = function(ServiceDefinition $def) use ($self) { - $def->addSetup('addFilter', array('slugify', array($self->prefix('@helpers'), 'slugify'))); + $def->addSetup('addFilter', array('slugify', array($self->prefix('@helper'), 'slugify'))); }; $latteFactory = $builder->getByType('Nette\Bridges\ApplicationLatte\ILatteFactory') ?: 'nette.latteFactory'; diff --git a/tests/Bridge/Nette/SlugifyExtensionTest.php b/tests/Bridge/Nette/SlugifyExtensionTest.php new file mode 100644 index 00000000..4cb6319c --- /dev/null +++ b/tests/Bridge/Nette/SlugifyExtensionTest.php @@ -0,0 +1,137 @@ +<?php + +namespace Cocur\Slugify\Bridge\Nette; + +use Nette\Bridges\ApplicationDI\LatteExtension; +use Nette\DI\Compiler; +use \Mockery as m; + + +/** + * SlugifyExtensionTest + * + * @category test + * @package cocur/slugify + * @subpackage bridge + * @author Lukáš Unger <looky.msc@gmail.com> + * @license http://www.opensource.org/licenses/MIT The MIT License + * @group unit + */ +class SlugifyExtensionTest extends \PHPUnit_Framework_TestCase +{ + + public function setUp() + { + $this->extension = new SlugifyExtension(); + } + + /** + * @test + * @covers Cocur\Slugify\Bridge\Nette\SlugifyExtension::loadConfiguration() + */ + public function loadConfiguration() + { + $slugify = m::mock('Nette\DI\ServiceDefinition'); + $slugify + ->shouldReceive('setClass') + ->with('Cocur\Slugify\SlugifyInterface') + ->once() + ->andReturn($slugify); + $slugify + ->shouldReceive('setFactory') + ->with('Cocur\Slugify\Slugify') + ->once() + ->andReturn($slugify); + + $helper = m::mock('Nette\DI\ServiceDefinition'); + $helper + ->shouldReceive('setClass') + ->with('Cocur\Slugify\Bridge\Latte\SlugifyHelper') + ->once() + ->andReturn($helper); + $helper + ->shouldReceive('setInject') + ->with(false) + ->once() + ->andReturn($helper); + + $builder = m::mock('Nette\DI\ContainerBuilder'); + $builder + ->shouldReceive('addDefinition') + ->with('slugify.slugify') + ->once() + ->andReturn($slugify); + $builder + ->shouldReceive('addDefinition') + ->with('slugify.helper') + ->once() + ->andReturn($helper); + + $compiler = m::mock('Nette\DI\Compiler'); + $compiler + ->shouldReceive('getContainerBuilder') + ->once() + ->andReturn($builder); + + $this->extension->setCompiler($compiler, 'slugify'); + $this->extension->loadConfiguration(); + } + + /** + * @test + * @covers Cocur\Slugify\Bridge\Nette\SlugifyExtension::beforeCompile() + */ + public function beforeCompile() + { + $latteFactory = m::mock('Nette\DI\ServiceDefinition'); + $latteFactory + ->shouldReceive('addSetup') + ->with('addFilter', array('slugify', array('@slugify.helper', 'slugify'))) + ->once() + ->andReturn($latteFactory); + + $latte = m::mock('Nette\DI\ServiceDefinition'); + $latte + ->shouldReceive('addSetup') + ->with('addFilter', array('slugify', array('@slugify.helper', 'slugify'))) + ->once() + ->andReturn($latte); + + $builder = m::mock('Nette\DI\ContainerBuilder'); + $builder + ->shouldReceive('getByType') + ->with('Nette\Bridges\ApplicationLatte\ILatteFactory') + ->once() + ->andReturn('latte.latteFactory'); + $builder + ->shouldReceive('hasDefinition') + ->with('latte.latteFactory') + ->once() + ->andReturn(TRUE); + $builder + ->shouldReceive('getDefinition') + ->with('latte.latteFactory') + ->once() + ->andReturn($latteFactory); + $builder + ->shouldReceive('hasDefinition') + ->with('nette.latte') + ->once() + ->andReturn(TRUE); + $builder + ->shouldReceive('getDefinition') + ->with('nette.latte') + ->once() + ->andReturn($latte); + + $compiler = m::mock('Nette\DI\Compiler'); + $compiler + ->shouldReceive('getContainerBuilder') + ->once() + ->andReturn($builder); + + $this->extension->setCompiler($compiler, 'slugify'); + $this->extension->beforeCompile(); + } + +}