ccf63e6b8d
* 2.7: [FrameworkBundle] Check for class existence before is_subclass_of Update GroupSequence.php Code enhancement and cleanup [DI] Add anti-regression test Revert "minor #19689 [DI] Cleanup array_key_exists (ro0NL)" [BrowserKit] Fix cookie expiration on 32 bit systems bumped Symfony version to 2.7.18 updated VERSION for 2.7.17 update CONTRIBUTORS for 2.7.17 updated CHANGELOG for 2.7.17 Update misleading comment about RFC4627
127 lines
5.4 KiB
PHP
127 lines
5.4 KiB
PHP
<?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\Component\Console\Tests\Helper;
|
|
|
|
use Symfony\Component\Console\Helper\HelperSet;
|
|
use Symfony\Component\Console\Command\Command;
|
|
|
|
class HelperSetTest extends \PHPUnit_Framework_TestCase
|
|
{
|
|
public function testConstructor()
|
|
{
|
|
$mock_helper = $this->getGenericMockHelper('fake_helper');
|
|
$helperset = new HelperSet(array('fake_helper_alias' => $mock_helper));
|
|
|
|
$this->assertEquals($mock_helper, $helperset->get('fake_helper_alias'), '__construct sets given helper to helpers');
|
|
$this->assertTrue($helperset->has('fake_helper_alias'), '__construct sets helper alias for given helper');
|
|
}
|
|
|
|
public function testSet()
|
|
{
|
|
$helperset = new HelperSet();
|
|
$helperset->set($this->getGenericMockHelper('fake_helper', $helperset));
|
|
$this->assertTrue($helperset->has('fake_helper'), '->set() adds helper to helpers');
|
|
|
|
$helperset = new HelperSet();
|
|
$helperset->set($this->getGenericMockHelper('fake_helper_01', $helperset));
|
|
$helperset->set($this->getGenericMockHelper('fake_helper_02', $helperset));
|
|
$this->assertTrue($helperset->has('fake_helper_01'), '->set() will set multiple helpers on consecutive calls');
|
|
$this->assertTrue($helperset->has('fake_helper_02'), '->set() will set multiple helpers on consecutive calls');
|
|
|
|
$helperset = new HelperSet();
|
|
$helperset->set($this->getGenericMockHelper('fake_helper', $helperset), 'fake_helper_alias');
|
|
$this->assertTrue($helperset->has('fake_helper'), '->set() adds helper alias when set');
|
|
$this->assertTrue($helperset->has('fake_helper_alias'), '->set() adds helper alias when set');
|
|
}
|
|
|
|
public function testHas()
|
|
{
|
|
$helperset = new HelperSet(array('fake_helper_alias' => $this->getGenericMockHelper('fake_helper')));
|
|
$this->assertTrue($helperset->has('fake_helper'), '->has() finds set helper');
|
|
$this->assertTrue($helperset->has('fake_helper_alias'), '->has() finds set helper by alias');
|
|
}
|
|
|
|
public function testGet()
|
|
{
|
|
$helper_01 = $this->getGenericMockHelper('fake_helper_01');
|
|
$helper_02 = $this->getGenericMockHelper('fake_helper_02');
|
|
$helperset = new HelperSet(array('fake_helper_01_alias' => $helper_01, 'fake_helper_02_alias' => $helper_02));
|
|
$this->assertEquals($helper_01, $helperset->get('fake_helper_01'), '->get() returns correct helper by name');
|
|
$this->assertEquals($helper_01, $helperset->get('fake_helper_01_alias'), '->get() returns correct helper by alias');
|
|
$this->assertEquals($helper_02, $helperset->get('fake_helper_02'), '->get() returns correct helper by name');
|
|
$this->assertEquals($helper_02, $helperset->get('fake_helper_02_alias'), '->get() returns correct helper by alias');
|
|
|
|
$helperset = new HelperSet();
|
|
try {
|
|
$helperset->get('foo');
|
|
$this->fail('->get() throws InvalidArgumentException when helper not found');
|
|
} catch (\Exception $e) {
|
|
$this->assertInstanceOf('\InvalidArgumentException', $e, '->get() throws InvalidArgumentException when helper not found');
|
|
$this->assertInstanceOf('Symfony\Component\Console\Exception\ExceptionInterface', $e, '->get() throws domain specific exception when helper not found');
|
|
$this->assertContains('The helper "foo" is not defined.', $e->getMessage(), '->get() throws InvalidArgumentException when helper not found');
|
|
}
|
|
}
|
|
|
|
public function testSetCommand()
|
|
{
|
|
$cmd_01 = new Command('foo');
|
|
$cmd_02 = new Command('bar');
|
|
|
|
$helperset = new HelperSet();
|
|
$helperset->setCommand($cmd_01);
|
|
$this->assertEquals($cmd_01, $helperset->getCommand(), '->setCommand() stores given command');
|
|
|
|
$helperset = new HelperSet();
|
|
$helperset->setCommand($cmd_01);
|
|
$helperset->setCommand($cmd_02);
|
|
$this->assertEquals($cmd_02, $helperset->getCommand(), '->setCommand() overwrites stored command with consecutive calls');
|
|
}
|
|
|
|
public function testGetCommand()
|
|
{
|
|
$cmd = new Command('foo');
|
|
$helperset = new HelperSet();
|
|
$helperset->setCommand($cmd);
|
|
$this->assertEquals($cmd, $helperset->getCommand(), '->getCommand() retrieves stored command');
|
|
}
|
|
|
|
public function testIteration()
|
|
{
|
|
$helperset = new HelperSet();
|
|
$helperset->set($this->getGenericMockHelper('fake_helper_01', $helperset));
|
|
$helperset->set($this->getGenericMockHelper('fake_helper_02', $helperset));
|
|
|
|
$helpers = array('fake_helper_01', 'fake_helper_02');
|
|
$i = 0;
|
|
|
|
foreach ($helperset as $helper) {
|
|
$this->assertEquals($helpers[$i++], $helper->getName());
|
|
}
|
|
}
|
|
|
|
private function getGenericMockHelper($name, HelperSet $helperset = null)
|
|
{
|
|
$mock_helper = $this->getMock('\Symfony\Component\Console\Helper\HelperInterface');
|
|
$mock_helper->expects($this->any())
|
|
->method('getName')
|
|
->will($this->returnValue($name));
|
|
|
|
if ($helperset) {
|
|
$mock_helper->expects($this->any())
|
|
->method('setHelperSet')
|
|
->with($this->equalTo($helperset));
|
|
}
|
|
|
|
return $mock_helper;
|
|
}
|
|
}
|