Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
RealTypesTest.php
Go to the documentation of this file.
1 <?php
8 
14 
15 class RealTypesTest extends \PHPUnit\Framework\TestCase
16 {
18  private $model;
19 
21  private $objectManagerHelper;
22 
23  protected function setUp()
24  {
25 
26  $this->objectManagerHelper = new ObjectManagerHelper($this);
27  $this->model = $this->objectManagerHelper->getObject(
28  RealTypes::class,
29  []
30  );
31  }
32 
33  public function testValidate()
34  {
35  $table = new Table(
36  'name',
37  'name',
38  'table',
39  'default',
40  'innodb',
41  'utf-8',
42  'utf-8',
43  ''
44  );
45  $okColumn = new Real('decimal', 'decimal', $table, 10, 5);
46  $invalidColumn = new Real('float', 'float', $table, 5, 10);
47  $table->addColumns([$okColumn, $invalidColumn]);
49  $schemaMock = $this->getMockBuilder(Schema::class)
50  ->disableOriginalConstructor()
51  ->getMock();
52  $schemaMock->expects(self::once())
53  ->method('getTables')
54  ->willReturn([$table]);
55 
56  self::assertEquals(
57  [
58  [
59  'column' => 'name.float',
60  'message' =>
61  'Real type "precision" must be greater or equal to "scale". ' .
62  'float(5,10) is invalid in name.float.'
63  ]
64  ],
65  $this->model->validate($schemaMock)
66  );
67  }
68 }
$table
Definition: trigger.php:14