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(); } }