<?php namespace Doctrine\DBAL\Tests\Platforms; use Doctrine\DBAL\Platforms\AbstractPlatform; use Doctrine\DBAL\Platforms\MySQL57Platform; use Doctrine\DBAL\Types\Types; class MySQL57PlatformTest extends AbstractMySQLPlatformTestCase { public function createPlatform(): AbstractPlatform { return new MySQL57Platform(); } public function testHasNativeJsonType(): void { self::assertTrue($this->platform->hasNativeJsonType()); } public function testReturnsJsonTypeDeclarationSQL(): void { self::assertSame('JSON', $this->platform->getJsonTypeDeclarationSQL([])); } public function testInitializesJsonTypeMapping(): void { self::assertTrue($this->platform->hasDoctrineTypeMappingFor('json')); self::assertSame(Types::JSON, $this->platform->getDoctrineTypeMapping('json')); } /** * @return string[] */ protected function getAlterTableRenameIndexSQL(): array { return ['ALTER TABLE mytable RENAME INDEX idx_foo TO idx_bar']; } /** * @return string[] */ protected function getQuotedAlterTableRenameIndexSQL(): array { return [ 'ALTER TABLE `table` RENAME INDEX `create` TO `select`', 'ALTER TABLE `table` RENAME INDEX `foo` TO `bar`', ]; } /** * @return string[] */ protected function getAlterTableRenameIndexInSchemaSQL(): array { return ['ALTER TABLE myschema.mytable RENAME INDEX idx_foo TO idx_bar']; } /** * @return string[] */ protected function getQuotedAlterTableRenameIndexInSchemaSQL(): array { return [ 'ALTER TABLE `schema`.`table` RENAME INDEX `create` TO `select`', 'ALTER TABLE `schema`.`table` RENAME INDEX `foo` TO `bar`', ]; } /** * {@inheritdoc} */ protected function getGeneratesAlterTableRenameIndexUsedByForeignKeySQL(): array { return ['ALTER TABLE mytable RENAME INDEX idx_foo TO idx_foo_renamed']; } }