diff --git a/tests/Migrations/MySQL/RendererTest.php b/tests/Migrations/MySQL/RendererTest.php index 68a40da..2e0c512 100644 --- a/tests/Migrations/MySQL/RendererTest.php +++ b/tests/Migrations/MySQL/RendererTest.php @@ -11,6 +11,12 @@ namespace Cycle\Migrations\Tests\MySQL; +use Cycle\Database\Driver\MySQL\Schema\MySQLIndex; +use Cycle\Database\Schema\Comparator; +use Cycle\Database\Schema\State; +use Cycle\Migrations\Atomizer\Renderer; +use Spiral\Reactor\Partial\Method; + /** * @group driver * @group driver-mysql @@ -18,4 +24,36 @@ class RendererTest extends \Cycle\Migrations\Tests\RendererTest { public const DRIVER = 'mysql'; + + public function testDeclareIndexes(): void + { + $method = new Method('up'); + + $columns = ['email', 'username']; + + $indexA = new MySQLIndex('table', 'idx_email_username'); + $indexA->columns($columns); + $initial = new State('test_table'); + $initial->registerIndex($indexA); + + + $indexB = new MySQLIndex('table', 'idx_email_username'); + $indexB->columns(\array_reverse($columns)); + $current = new State('test_table'); + $current->registerIndex($indexB); + + $comparator = new Comparator($initial, $current); + + $renderer = new Renderer(); + + $reflectionMethod = new \ReflectionMethod($renderer, 'declareIndexes'); + $reflectionMethod->setAccessible(true); + + /** + * Method $method, Comparator $comparator + */ + $reflectionMethod->invoke($renderer, $method, $comparator); + + self::assertSame('', $method->getBody()); + } } diff --git a/tests/bootstrap.php b/tests/bootstrap.php index 9121c27..fabecc4 100644 --- a/tests/bootstrap.php +++ b/tests/bootstrap.php @@ -11,12 +11,12 @@ use Cycle\Database\Config; -error_reporting(E_ALL | E_STRICT); -ini_set('display_errors', '1'); -mb_internal_encoding('UTF-8'); +\error_reporting(E_ALL | E_STRICT); +\ini_set('display_errors', '1'); +\mb_internal_encoding('UTF-8'); //Composer -require dirname(__DIR__) . '/vendor/autoload.php'; +require \dirname(__DIR__) . '/vendor/autoload.php'; $drivers = [ 'debug' => false, @@ -31,7 +31,7 @@ user: 'root', password: 'YourStrong!Passw0rd', ), - queryCache: true + queryCache: true, ), 'postgres' => new Config\PostgresDriverConfig( connection: new Config\Postgres\TcpConnectionConfig( @@ -53,18 +53,18 @@ user: 'SA', password: 'YourStrong!Passw0rd', ), - queryCache: true + queryCache: true, ), ]; -$db = getenv('DB') ?: null; +$db = \getenv('DB') ?: null; if ($db !== null) { $db = [$db, "$db-mock"]; } \Cycle\Migrations\Tests\BaseTest::$config = [ - 'debug' => getenv('DB_DEBUG') ?: false, + 'debug' => \getenv('DB_DEBUG') ?: false, ] + ( $db === null ? $drivers - : array_intersect_key($drivers, array_flip((array)$db)) + : \array_intersect_key($drivers, \array_flip((array) $db)) );