148 lines
4.1 KiB
PHP
Executable File
148 lines
4.1 KiB
PHP
Executable File
<?php
|
|
/**
|
|
* Copyright © Magento, Inc. All rights reserved.
|
|
* See COPYING.txt for license details.
|
|
*/
|
|
namespace Magento\Setup\Console\Command;
|
|
|
|
use Magento\Framework\App\ObjectManagerFactory;
|
|
use Magento\Framework\App\ResourceConnection;
|
|
use Magento\Framework\Console\Cli;
|
|
use Magento\Framework\ObjectManagerInterface;
|
|
use Magento\Indexer\Console\Command\IndexerReindexCommand;
|
|
use Magento\Setup\Fixtures\FixtureModel;
|
|
use Magento\TestFramework\Helper\Bootstrap;
|
|
use Symfony\Component\Console\Tester\CommandTester;
|
|
|
|
/**
|
|
* Class GenerateFixturesCommandCommandTest
|
|
*
|
|
* @magentoDbIsolation disabled
|
|
*/
|
|
class GenerateFixturesCommandTest extends \Magento\TestFramework\Indexer\TestCase
|
|
{
|
|
/** @var CommandTester */
|
|
private $indexerCommand;
|
|
|
|
/** @var FixtureModel */
|
|
private $fixtureModelMock;
|
|
|
|
/** @var ObjectManagerInterface */
|
|
private $objectManager;
|
|
|
|
/** @var GenerateFixturesCommand */
|
|
private $command;
|
|
|
|
/** @var CommandTester */
|
|
private $commandTester;
|
|
|
|
/**
|
|
* Setup
|
|
*/
|
|
protected function setUp(): void
|
|
{
|
|
$this->objectManager = Bootstrap::getObjectManager();
|
|
|
|
$this->objectManager->get(\Magento\TestFramework\App\Config::class)->clean();
|
|
|
|
$this->fixtureModelMock = $this->getMockBuilder(FixtureModel::class)
|
|
->setMethods(['getObjectManager'])
|
|
->setConstructorArgs([$this->objectManager->get(IndexerReindexCommand::class)])
|
|
->getMock();
|
|
$this->fixtureModelMock
|
|
->method('getObjectManager')
|
|
->willReturn($this->objectManager);
|
|
|
|
$this->command = $this->objectManager->create(
|
|
GenerateFixturesCommand::class,
|
|
[
|
|
'fixtureModel' => $this->fixtureModelMock
|
|
]
|
|
);
|
|
|
|
$objectFactoryMock = $this->getMockBuilder(ObjectManagerFactory::class)
|
|
->setMethods(['create'])
|
|
->disableOriginalConstructor()
|
|
->getMock();
|
|
$objectFactoryMock
|
|
->method('create')
|
|
->willReturn($this->objectManager);
|
|
|
|
$this->indexerCommand = new CommandTester($this->objectManager->create(
|
|
IndexerReindexCommand::class,
|
|
['objectManagerFactory' => $objectFactoryMock]
|
|
));
|
|
|
|
$this->commandTester = new CommandTester($this->command);
|
|
|
|
$this->setIncrement(3);
|
|
|
|
parent::setUp();
|
|
}
|
|
|
|
/**
|
|
* teardown
|
|
*/
|
|
protected function tearDown(): void
|
|
{
|
|
$this->setIncrement(1);
|
|
|
|
self::restoreFromDb();
|
|
self::$dbRestored = true;
|
|
|
|
parent::tearDown();
|
|
}
|
|
|
|
public static function setUpBeforeClass(): void
|
|
{
|
|
$db = Bootstrap::getInstance()->getBootstrap()
|
|
->getApplication()
|
|
->getDbInstance();
|
|
if (!$db->isDbDumpExists()) {
|
|
throw new \LogicException('DB dump does not exist.');
|
|
}
|
|
$db->restoreFromDbDump();
|
|
|
|
parent::setUpBeforeClass();
|
|
}
|
|
|
|
/**
|
|
* @magentoAppArea adminhtml
|
|
* @magentoAppIsolation enabled
|
|
*/
|
|
public function testExecute()
|
|
{
|
|
$profile = realpath(__DIR__ . "/_files/min_profile.xml");
|
|
$this->commandTester->execute(
|
|
[
|
|
GenerateFixturesCommand::PROFILE_ARGUMENT => $profile,
|
|
'--' . GenerateFixturesCommand::SKIP_REINDEX_OPTION => true
|
|
]
|
|
);
|
|
$this->indexerCommand->execute([]);
|
|
|
|
static::assertEquals(
|
|
Cli::RETURN_SUCCESS,
|
|
$this->indexerCommand->getStatusCode(),
|
|
$this->indexerCommand->getDisplay(true)
|
|
);
|
|
|
|
static::assertEquals(
|
|
Cli::RETURN_SUCCESS,
|
|
$this->commandTester->getStatusCode(),
|
|
$this->commandTester->getDisplay(true)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @param $value
|
|
*/
|
|
private function setIncrement($value)
|
|
{
|
|
/** @var \Magento\Framework\DB\Adapter\AdapterInterface $db */
|
|
$db = Bootstrap::getObjectManager()->get(ResourceConnection::class)->getConnection();
|
|
$db->query("SET @@session.auto_increment_increment=$value");
|
|
$db->query("SET @@session.auto_increment_offset=$value");
|
|
}
|
|
}
|