![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/dev/tests/setup-integration/testsuite/Magento/Setup/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Setup; use Magento\Framework\Module\ModuleResource; use Magento\Framework\Setup\Patch\PatchHistory; use Magento\TestFramework\Deploy\CliCommand; use Magento\TestFramework\Deploy\TableData; use Magento\TestFramework\Deploy\TestModuleManager; use Magento\TestFramework\Helper\Bootstrap; use Magento\TestFramework\TestCase\SetupTestCase; use Magento\TestSetupDeclarationModule3\Setup\Patch\Data\IncrementalSomeIntegerPatch; use Magento\TestSetupDeclarationModule3\Setup\Patch\Data\ReferenceIncrementalSomeIntegerPatch; use Magento\TestSetupDeclarationModule3\Setup\Patch\Data\ZFirstPatch; /** * The purpose of this test is validating schema reader operations. */ class DataPatchInstallationTest extends SetupTestCase { /** * @var TestModuleManager */ private $moduleManager; /** * @var CliCommand */ private $cliCommad; /** * @var ModuleResource */ private $moduleResource; /** * @var PatchHistory */ private $patchList; /** * @var TableData */ private $tableData; protected function setUp(): void { $objectManager = Bootstrap::getObjectManager(); $this->moduleManager = $objectManager->get(TestModuleManager::class); $this->cliCommad = $objectManager->get(CliCommand::class); $this->moduleResource = $objectManager->get(ModuleResource::class); $this->patchList = $objectManager->get(PatchHistory::class); $this->tableData = $objectManager->get(TableData::class); } /** * @moduleName Magento_TestSetupDeclarationModule3 */ public function testDataPatchesInstallation() { $this->cliCommad->install( ['Magento_TestSetupDeclarationModule3'] ); self::assertEquals( '0.0.1', $this->moduleResource->getDataVersion('Magento_TestSetupDeclarationModule3') ); $this->moduleManager->updateRevision( 'Magento_TestSetupDeclarationModule3', 'first_patch_revision', 'module.xml', 'etc' ); $this->movePatches(); ModuleResource::flush(); $this->cliCommad->upgrade(); self::assertEquals( '0.0.3', $this->moduleResource->getDataVersion('Magento_TestSetupDeclarationModule3') ); self::assertTrue($this->patchList->isApplied(IncrementalSomeIntegerPatch::class)); self::assertTrue($this->patchList->isApplied(ReferenceIncrementalSomeIntegerPatch::class)); self::assertTrue($this->patchList->isApplied(ZFirstPatch::class)); $tableData = $this->tableData->describeTableData('test_table'); self::assertEquals($this->getTestTableData(), $tableData); } /** * @moduleName Magento_TestSetupDeclarationModule3 */ public function testCyclomaticDependency() { $this->expectException(\Magento\Framework\Exception\LocalizedException::class); $this->moduleManager->updateRevision( 'Magento_TestSetupDeclarationModule3', 'cyclomatic_and_bic_revision', 'module.xml', 'etc' ); $this->movePatches(); /** * Test whether installation give the same result as upgrade */ $this->cliCommad->install( ['Magento_TestSetupDeclarationModule3'] ); $tableData = $this->tableData->describeTableData('test_table'); self::assertEquals($this->getTestTableData(), $tableData); $this->moduleManager->updateRevision( 'Magento_TestSetupDeclarationModule3', 'cyclomatic_and_bic_revision', 'BicPatch.php', 'Setup/Patch/Data' ); $this->moduleManager->updateRevision( 'Magento_TestSetupDeclarationModule3', 'cyclomatic_and_bic_revision', 'RefBicPatch.php', 'Setup/Patch/Data' ); $this->cliCommad->upgrade(); } /** * Move patches */ private function movePatches() { //Install with patches $this->moduleManager->addRevision( 'Magento_TestSetupDeclarationModule3', 'patches_revision', 'Setup/Patch/Data' ); //Upgrade with UpgradeData $this->moduleManager->updateRevision( 'Magento_TestSetupDeclarationModule3', 'first_patch_revision', 'UpgradeData.php', 'Setup' ); //Upgrade with UpgradeData $this->moduleManager->updateRevision( 'Magento_TestSetupDeclarationModule3', 'first_patch_revision', 'module.xml', 'etc' ); } /** * @moduleName Magento_TestSetupDeclarationModule3 */ public function testPatchesRevert() { $this->movePatches(); $this->cliCommad->install(['Magento_TestSetupDeclarationModule3']); $this->cliCommad->uninstallModule('Magento_TestSetupDeclarationModule3'); $testTableData = $this->tableData->describeTableData('test_table'); $patchListTableData = $this->tableData->describeTableData('patch_list'); self::assertEmpty($patchListTableData); self::assertEmpty($testTableData); $refTableData = $this->tableData->describeTableData('reference_table'); self::assertEquals($this->getRefTableData(), $refTableData); } /** * @return array */ private function getTestTableData() { return [ [ 'smallint' => '1', 'tinyint' => null, 'varchar' => 'Ololo123', 'varbinary' => '33288', ], [ 'smallint' => '2', 'tinyint' => null, 'varchar' => 'Ololo123_ref', 'varbinary' => '33288', ], [ 'smallint' => '3', 'tinyint' => null, 'varchar' => 'changed__very_secret_string', 'varbinary' => '0', ], ]; } /** * Retrieve reference table data * * @return array */ private function getRefTableData() { return [ [ 'tinyint_ref' => '2', 'some_integer' => '2', 'for_patch_testing' => null, ], [ 'tinyint_ref' => '3', 'some_integer' => '3', 'for_patch_testing' => null, ], [ 'tinyint_ref' => '4', 'some_integer' => '5', 'for_patch_testing' => null, ], [ 'tinyint_ref' => '5', 'some_integer' => '6', 'for_patch_testing' => null, ], [ 'tinyint_ref' => '6', 'some_integer' => '12', 'for_patch_testing' => null, ], ]; } }