schemaConfig = $objectManager->create(SchemaConfig::class); $this->moduleManager = $objectManager->get(TestModuleManager::class); $this->cliCommad = $objectManager->get(CliCommand::class); } /** * Tests primary key constraint conversion from XML and renamed functionality. * * @moduleName Magento_TestSetupDeclarationModule1 */ public function testSchemaBuilder() { $this->cliCommad->install( ['Magento_TestSetupDeclarationModule1'] ); $dbSchema = $this->schemaConfig->getDeclarationConfig(); $schemaTables = $dbSchema->getTables(); self::assertArrayHasKey('reference_table', $dbSchema->getTables()); self::assertArrayHasKey('test_table', $dbSchema->getTables()); //Test primary key and renaming $referenceTable = $schemaTables['reference_table']; /** * @var Internal $primaryKey */ $primaryKey = $referenceTable->getPrimaryConstraint(); $columns = $primaryKey->getColumns(); self::assertEquals('tinyint_ref', reset($columns)->getName()); //Test column $testTable = $schemaTables['test_table']; /** * @var Timestamp $timestampColumn */ $timestampColumn = $testTable->getColumnByName('timestamp'); self::assertEquals('CURRENT_TIMESTAMP', $timestampColumn->getOnUpdate()); //Test disabled self::assertArrayNotHasKey('varbinary_rename', $testTable->getColumns()); //Test foreign key /** * @var Reference $foreignKey */ $foreignKey = $testTable->getConstraintByName('TEST_TABLE_TINYINT_REFERENCE_TABLE_TINYINT_REF'); self::assertEquals('NO ACTION', $foreignKey->getOnDelete()); self::assertEquals('tinyint_ref', $foreignKey->getReferenceColumn()->getName()); } }