Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
DeclarativeSchemaBuilderTest.php
Go to the documentation of this file.
1 <?php
7 namespace Magento\Setup;
8 
17 
23 {
27  private $moduleManager;
28 
32  private $schemaConfig;
33 
37  private $cliCommad;
38 
39  public function setUp()
40  {
42  $this->schemaConfig = $objectManager->create(SchemaConfig::class);
43  $this->moduleManager = $objectManager->get(TestModuleManager::class);
44  $this->cliCommad = $objectManager->get(CliCommand::class);
45  }
46 
52  public function testSchemaBuilder()
53  {
54  $this->cliCommad->install(
55  ['Magento_TestSetupDeclarationModule1']
56  );
57  $dbSchema = $this->schemaConfig->getDeclarationConfig();
58  $schemaTables = $dbSchema->getTables();
59  self::assertArrayHasKey('reference_table', $dbSchema->getTables());
60  self::assertArrayHasKey('test_table', $dbSchema->getTables());
61  //Test primary key and renaming
62  $referenceTable = $schemaTables['reference_table'];
66  $primaryKey = $referenceTable->getPrimaryConstraint();
67  $columns = $primaryKey->getColumns();
68  self::assertEquals('tinyint_ref', reset($columns)->getName());
69  //Test column
70  $testTable = $schemaTables['test_table'];
74  $timestampColumn = $testTable->getColumnByName('timestamp');
75  self::assertEquals('CURRENT_TIMESTAMP', $timestampColumn->getOnUpdate());
76  //Test disabled
77  self::assertArrayNotHasKey('varbinary_rename', $testTable->getColumns());
78  //Test foreign key
82  $foreignKey = $testTable->getConstraintByName('TEST_TABLE_TINYINT_REFERENCE_TABLE_TINYINT_REF');
83  self::assertEquals('NO ACTION', $foreignKey->getOnDelete());
84  self::assertEquals('tinyint_ref', $foreignKey->getReferenceColumn()->getName());
85  }
86 }
$objectManager
Definition: bootstrap.php:17
$columns
Definition: default.phtml:15