|
|
|
<?php
|
|
|
|
|
|
|
|
namespace MageTest\Command;
|
|
|
|
|
|
|
|
use Mage\Command\Factory;
|
|
|
|
use PHPUnit_Framework_TestCase;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @group Mage_Command
|
|
|
|
* @group Mage_Command_Factory
|
|
|
|
*
|
|
|
|
* @group issue-167
|
|
|
|
*/
|
|
|
|
class FactoryTest extends PHPUnit_Framework_TestCase
|
|
|
|
{
|
|
|
|
private $config;
|
|
|
|
|
|
|
|
protected function setUp()
|
|
|
|
{
|
|
|
|
$this->config = $this->getMock('Mage\Config');
|
|
|
|
}
|
|
|
|
|
|
|
|
public function testGet()
|
|
|
|
{
|
|
|
|
$command = Factory::get('add', $this->config);
|
|
|
|
$this->assertInstanceOf('Mage\\Command\\BuiltIn\\AddCommand', $command);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @expectedException \Exception
|
|
|
|
*/
|
|
|
|
public function testGetClassNotFoundException()
|
|
|
|
{
|
|
|
|
$command = Factory::get('commanddoesntexist', $this->config);
|
|
|
|
}
|
|
|
|
|
|
|
|
public function testGetCustomCommand()
|
|
|
|
{
|
|
|
|
$this->getMockBuilder('Mage\\Command\\AbstractCommand')
|
|
|
|
->setMockClassName('MyCommand')
|
|
|
|
->getMock();
|
|
|
|
|
|
|
|
/**
|
|
|
|
* current workaround
|
|
|
|
* @link https://github.com/sebastianbergmann/phpunit-mock-objects/issues/134
|
|
|
|
*/
|
|
|
|
class_alias('MyCommand', 'Command\\MyCommand');
|
|
|
|
|
|
|
|
$command = Factory::get('my-command', $this->config);
|
|
|
|
$this->assertInstanceOf('Command\\MyCommand', $command);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @expectedException \Exception
|
|
|
|
* @expectedExceptionMessage The command MyInconsistentCommand must be an instance of Mage\Command\AbstractCommand.
|
|
|
|
*/
|
|
|
|
public function testGetInconsistencyException()
|
|
|
|
{
|
|
|
|
$this->getMock('Command\\MyInconsistentCommand');
|
|
|
|
|
|
|
|
$command = Factory::get('my-inconsistent-command', $this->config);
|
|
|
|
}
|
|
|
|
}
|