Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
CheckReferenceColumnHasIndexTest.php
Go to the documentation of this file.
1 <?php
8 
15 
16 class CheckReferenceColumnHasIndexTest extends \PHPUnit\Framework\TestCase
17 {
19  private $model;
20 
22  private $objectManagerHelper;
23 
24  protected function setUp()
25  {
26  $this->objectManagerHelper = new ObjectManagerHelper($this);
27  $this->model = $this->objectManagerHelper->getObject(
28  CheckReferenceColumnHasIndex::class,
29  [
30  ]
31  );
32  }
33 
34  public function testValidate()
35  {
36  $table = new Table(
37  'name',
38  'name',
39  'table',
40  'default',
41  'innodb',
42  'utf-8',
43  'utf-8',
44  ''
45  );
46  $refTable = new Table(
47  'ref_table',
48  'name',
49  'table',
50  'default',
51  'innodb',
52  'utf-8',
53  'utf-8',
54  ''
55  );
56 
57  $column = new Real('decimal', 'decimal', $table, 10, 5);
58  $refColumn = new Real('ref_decimal', 'decimal', $refTable, 10, 5);
59  $reference = new Reference(
60  'ref',
61  'foreign',
62  $table,
63  'ref',
64  $column,
65  $refTable,
66  $refColumn,
67  'CASCADE'
68  );
69 
70  $table->addColumns([$column]);
71  $refTable->addColumns([$refColumn]);
72  $table->addConstraints([$reference]);
74  $schemaMock = $this->getMockBuilder(Schema::class)
75  ->disableOriginalConstructor()
76  ->getMock();
77  $schemaMock->expects(self::once())
78  ->method('getTables')
79  ->willReturn([$table]);
80  self::assertEquals(
81  [
82  [
83  'column' => 'ref_decimal',
84  'message' => 'Reference column ref_decimal in reference table ref_table do not have index',
85  ],
86  ],
87  $this->model->validate($schemaMock)
88  );
89  }
90 }
$table
Definition: trigger.php:14