open-orchestra/open-orchestra-front-bundle

View on GitHub
FrontBundle/Tests/Twig/SubQueryGeneratorExtensionTest.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php

namespace OpenOrchestra\FrontBundle\Tests\Twig;

use OpenOrchestra\BaseBundle\Tests\AbstractTest\AbstractBaseTestCase;
use OpenOrchestra\FrontBundle\Twig\SubQueryGeneratorExtension;
use Phake;

/**
 * Test SubQueryGeneratorExtensionTest
 */
class SubQueryGeneratorExtensionTest extends AbstractBaseTestCase
{
    /**
     * @var SubQueryGeneratorExtension
     */
    protected $extension;

    protected $manager;

    /**
     * Set up
     */
    public function setUp()
    {
        $this->manager = Phake::mock('OpenOrchestra\FrontBundle\SubQuery\SubQueryGeneratorManager');
        $container = Phake::mock('Symfony\Component\DependencyInjection\Container');
        Phake::when($container)->get('open_orchestra_front.sub_query.manager')->thenReturn($this->manager);

        $this->extension = new SubQueryGeneratorExtension();
        $this->extension->setContainer($container);
    }

    /**
     * Test instance
     */
    public function testInstance()
    {
        $this->assertInstanceOf('Twig_Extension', $this->extension);
    }

    /**
     * Test name
     */
    public function testGetName()
    {
        $this->assertSame('sub_query', $this->extension->getName());
    }

    /**
     * Test method count
     */
    public function testFunction()
    {
        $this->assertCount(1, $this->extension->getFunctions());
    }

    /**
     * Test generateSubQuery
     */
    public function testGenerateSubQuery()
    {
        $subQuery = array('foo' => 'bar');
        $block = Phake::mock('OpenOrchestra\ModelInterface\Model\BlockInterface');
        Phake::when($this->manager)->generate(Phake::anyParameters())->thenReturn($subQuery);

        $this->assertSame($subQuery, $this->extension->generateSubQuery($block, array('bar')));
        Phake::verify($this->manager)->generate($block, array('bar'));
    }
}