![]() 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\Exception\LocalizedException; use Magento\Framework\Setup\Declaration\Schema\SchemaConfig; use Magento\TestFramework\Deploy\CliCommand; use Magento\TestFramework\Deploy\TestModuleManager; use Magento\TestFramework\Helper\Bootstrap; use Magento\TestFramework\TestCase\SetupTestCase; /** * The purpose of this test is verifying initial InstallSchema, InstallData scripts. */ class ValidationRulesTest extends SetupTestCase { /** * @var TestModuleManager */ private $moduleManager; /** * @var SchemaConfig */ private $schemaConfig; /** * @var CliCommand */ private $cliCommad; protected function setUp(): void { $objectManager = Bootstrap::getObjectManager(); $this->schemaConfig = $objectManager->create(SchemaConfig::class); $this->moduleManager = $objectManager->get(TestModuleManager::class); $this->cliCommad = $objectManager->get(CliCommand::class); } /** * @moduleName Magento_TestSetupDeclarationModule8 */ public function testFailOnInvalidPrimaryKey() { $this->expectException(LocalizedException::class); $this->expectExceptionMessageMatches( '/Primary key can`t be applied on table "test_table". All columns should be not nullable/' ); $this->cliCommad->install( ['Magento_TestSetupDeclarationModule8'] ); $this->moduleManager->updateRevision( 'Magento_TestSetupDeclarationModule8', 'invalid_primary_key', 'db_schema.xml', 'etc' ); $this->schemaConfig->getDeclarationConfig(); } /** * @moduleName Magento_TestSetupDeclarationModule8 */ public function testFailOnIncosistentReferenceDefinition() { $this->expectException(LocalizedException::class); $this->expectExceptionMessageMatches( '/Column definition "page_id_on" and reference column definition "page_id"' . ' are different in tables "dependent" and "test_table"/' ); $this->cliCommad->install( ['Magento_TestSetupDeclarationModule8'] ); $this->moduleManager->updateRevision( 'Magento_TestSetupDeclarationModule8', 'incosistence_reference_definition', 'db_schema.xml', 'etc' ); $this->schemaConfig->getDeclarationConfig(); } /** * @moduleName Magento_TestSetupDeclarationModule8 */ public function testFailOnInconsistentReferenceTypeDefinition() { $this->expectException(LocalizedException::class); $this->expectExceptionMessageMatches( '/Column definition "page_id_on" and reference column definition "page_id"' . ' are different in tables "dependent" and "test_table"/' ); $this->cliCommad->install( ['Magento_TestSetupDeclarationModule8'] ); $this->moduleManager->updateRevision( 'Magento_TestSetupDeclarationModule8', 'inconsistent_reference_type_definition', 'db_schema.xml', 'etc' ); $this->schemaConfig->getDeclarationConfig(); } /** * @moduleName Magento_TestSetupDeclarationModule8 */ public function testFailOnInvalidAutoIncrementField() { $this->expectException(LocalizedException::class); $this->expectExceptionMessageMatches('/Auto Increment column do not have index. Column - "page_id"/'); $this->cliCommad->install( ['Magento_TestSetupDeclarationModule8'] ); $this->moduleManager->updateRevision( 'Magento_TestSetupDeclarationModule8', 'invalid_auto_increment', 'db_schema.xml', 'etc' ); $this->schemaConfig->getDeclarationConfig(); } }