1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Framework\DB\Test\Unit\Ddl;
use Magento\Framework\DB\Ddl\Sequence;
use Magento\Framework\DB\Ddl\Table;
class SequenceTest extends \PHPUnit\Framework\TestCase
{
/**
* @param array $params
* @param string $expectedQuery
* @dataProvider createSequenceDdlDataProvider
*/
public function testGetCreateSequenceDdl(array $params, $expectedQuery)
{
$model = new Sequence();
$actualQuery = $model->getCreateSequenceDdl(...array_values($params));
$cleanString = function ($string) {
return trim(preg_replace('/\s+/', ' ', $string));
};
$this->assertEquals(
$cleanString($expectedQuery),
$cleanString($actualQuery)
);
}
public function testDropSequence()
{
$this->assertEquals(
'DROP TABLE someTable',
(new Sequence())->dropSequence('someTable')
);
}
/**
* @return array
*/
public function createSequenceDdlDataProvider()
{
return [
[
[
'name' => 'someName'
],
'CREATE TABLE someName (
sequence_value integer UNSIGNED NOT NULL AUTO_INCREMENT,
PRIMARY KEY (sequence_value)
) AUTO_INCREMENT = 1 ENGINE = INNODB'
],
[
[
'name' => 'someName',
'startNumber' => 123,
'columnType' => Table::TYPE_BIGINT,
'unsigned' => false
],
'CREATE TABLE someName (
sequence_value bigint NOT NULL AUTO_INCREMENT,
PRIMARY KEY (sequence_value)
) AUTO_INCREMENT = 123 ENGINE = INNODB'
]
];
}
}