TYPO3CMS  8
 All Classes Namespaces Files Functions Variables Pages
BinaryDataTypeTest.php
Go to the documentation of this file.
1 <?php
2 declare(strict_types=1);
3 
4 namespace TYPO3\CMS\Core\Tests\Unit\Database\Schema\Parser\DataTypes;
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 
23 
28 {
34  public function canParseBinaryDataTypeProvider(): array
35  {
36  return [
37  'BINARY without length' => [
38  'BINARY',
39  BinaryDataType::class,
40  0,
41  ],
42  'BINARY with length' => [
43  'BINARY(200)',
44  BinaryDataType::class,
45  200,
46  ],
47  'VARBINARY with length' => [
48  'VARBINARY(200)',
49  VarBinaryDataType::class,
50  200,
51  ],
52  ];
53  }
54 
62  public function canParseDataType(string $columnDefinition, string $className, int $length)
63  {
64  $subject = $this->createSubject($columnDefinition);
65 
66  $this->assertInstanceOf($className, $subject->dataType);
67  $this->assertSame($length, $subject->dataType->getLength());
68  }
69 
74  {
75  $this->expectExceptionCode(1471504822);
76  $this->expectExceptionMessageRegExp('Error: The current data type requires a field length definition');
77  new Parser('CREATE TABLE `aTable`(`aField` VARBINARY);');
78  }
79 }
canParseDataType(string $columnDefinition, string $className, int $length)