|
12 | 12 | use Doctrine\DBAL\Schema\Index;
|
13 | 13 | use Doctrine\DBAL\Schema\SchemaException;
|
14 | 14 | use Doctrine\DBAL\Schema\Table;
|
| 15 | +use Doctrine\DBAL\Schema\UniqueConstraint; |
15 | 16 | use Doctrine\DBAL\Types\Type;
|
16 | 17 | use Doctrine\Tests\DbalTestCase;
|
17 |
| -use function array_shift; |
| 18 | +use function array_keys; |
18 | 19 | use function current;
|
19 | 20 |
|
20 | 21 | class TableTest extends DbalTestCase
|
@@ -206,7 +207,11 @@ public function testConstraints() : void
|
206 | 207 | $constraints = $tableA->getForeignKeys();
|
207 | 208 |
|
208 | 209 | self::assertCount(1, $constraints);
|
209 |
| - self::assertSame($constraint, array_shift($constraints)); |
| 210 | + |
| 211 | + $constraintNames = array_keys($constraints); |
| 212 | + |
| 213 | + self::assertSame('fk_8c736521', $constraintNames[0]); |
| 214 | + self::assertSame($constraint, $constraints['fk_8c736521']); |
210 | 215 | }
|
211 | 216 |
|
212 | 217 | public function testOptions() : void
|
@@ -896,4 +901,33 @@ public function testTableComment() : void
|
896 | 901 | $table->setComment('foo');
|
897 | 902 | self::assertEquals('foo', $table->getComment());
|
898 | 903 | }
|
| 904 | + |
| 905 | + public function testUniqueConstraintWithEmptyName() : void |
| 906 | + { |
| 907 | + $columns = [ |
| 908 | + new Column('column1', Type::getType(Type::STRING)), |
| 909 | + new Column('column2', Type::getType(Type::STRING)), |
| 910 | + new Column('column3', Type::getType(Type::STRING)), |
| 911 | + new Column('column4', Type::getType(Type::STRING)), |
| 912 | + ]; |
| 913 | + |
| 914 | + $uniqueConstraints = [ |
| 915 | + new UniqueConstraint('', ['column1', 'column2']), |
| 916 | + new UniqueConstraint('', ['column3', 'column4']), |
| 917 | + ]; |
| 918 | + |
| 919 | + $table = new Table('test', $columns, [], $uniqueConstraints); |
| 920 | + |
| 921 | + $constraints = $table->getUniqueConstraints(); |
| 922 | + |
| 923 | + self::assertCount(2, $constraints); |
| 924 | + |
| 925 | + $constraintNames = array_keys($constraints); |
| 926 | + |
| 927 | + self::assertSame('fk_d87f7e0c341ce00bad15b1b1', $constraintNames[0]); |
| 928 | + self::assertSame('fk_d87f7e0cda12812744761484', $constraintNames[1]); |
| 929 | + |
| 930 | + self::assertSame($uniqueConstraints[0], $constraints['fk_d87f7e0c341ce00bad15b1b1']); |
| 931 | + self::assertSame($uniqueConstraints[1], $constraints['fk_d87f7e0cda12812744761484']); |
| 932 | + } |
899 | 933 | }
|
0 commit comments