Skip to content

Commit

Permalink
Added Nette extension test
Browse files Browse the repository at this point in the history
  • Loading branch information
lookyman committed Mar 17, 2015
1 parent 89b7def commit c3b279c
Show file tree
Hide file tree
Showing 3 changed files with 142 additions and 2 deletions.
3 changes: 3 additions & 0 deletions src/Bridge/Latte/SlugifyHelper.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@ class SlugifyHelper
/** @var SlugifyInterface */
private $slugify;

/**
* @codeCoverageIgnore
*/
public function __construct(SlugifyInterface $slugify)
{
$this->slugify = $slugify;
Expand Down
4 changes: 2 additions & 2 deletions src/Bridge/Nette/SlugifyExtension.php
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
Expand All @@ -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';
Expand Down
137 changes: 137 additions & 0 deletions tests/Bridge/Nette/SlugifyExtensionTest.php
Original file line number Diff line number Diff line change
@@ -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 <[email protected]>
* @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();
}

}

0 comments on commit c3b279c

Please sign in to comment.