[FEATURE] Doctrine: Implement SchemaMigrationService
[Packages/TYPO3.CMS.git] / typo3 / sysext / core / Tests / Unit / Database / Schema / Parser / DataTypeAttributes / NumericTypeAttributesTest.php
1 <?php
2 declare(strict_types=1);
3
4 namespace TYPO3\CMS\Core\Tests\Unit\Database\Schema\Parser\DataTypeAttributes;
5
6 /*
7 * This file is part of the TYPO3 CMS project.
8 *
9 * It is free software; you can redistribute it and/or modify it under
10 * the terms of the GNU General Public License, either version 2
11 * of the License, or any later version.
12 *
13 * For the full copyright and license information, please read the
14 * LICENSE.txt file that was distributed with this source code.
15 *
16 * The TYPO3 project - inspiring people to share!
17 */
18
19 use TYPO3\CMS\Core\Tests\Unit\Database\Schema\Parser\AbstractDataTypeBaseTestCase;
20
21 /**
22 * MySQL supports the SQL standard integer types INTEGER (or INT) and SMALLINT.
23 * As an extension to the standard, MySQL also supports the integer types TINYINT, MEDIUMINT, and BIGINT.
24 */
25 class NumericTypeAttributesTest extends AbstractDataTypeBaseTestCase
26 {
27
28 /**
29 * Data provider for canParseNumericDataTypeAttributes()
30 *
31 * @return array
32 */
33 public function canParseNumericDataTypeAttributesProvider(): array
34 {
35 return [
36 'UNSIGNED' => [
37 'INT(11) UNSIGNED',
38 ['unsigned' => true, 'zerofill' => false],
39 ],
40 'ZEROFILL' => [
41 'INT(11) ZEROFILL',
42 ['unsigned' => false, 'zerofill' => true],
43 ],
44 'UNSIGNED ZEROFILL' => [
45 'INT(11) UNSIGNED ZEROFILL',
46 ['unsigned' => true, 'zerofill' => true],
47 ]
48 ];
49 }
50
51 /**
52 * @test
53 * @dataProvider canParseNumericDataTypeAttributesProvider
54 * @param string $columnDefinition
55 * @param array $options
56 */
57 public function canParseDataType(string $columnDefinition, array $options)
58 {
59 $subject = $this->createSubject($columnDefinition);
60
61 $this->assertSame($options, $subject->dataType->getOptions());
62 }
63 }