From 9491b74d00d5ad363c076f77d8e6b34e16c2cde7 Mon Sep 17 00:00:00 2001 From: Timo Tijhof Date: Thu, 27 Jul 2017 21:19:53 -0700 Subject: [PATCH 1/1] rdbms: Complete coverage for Database::selectSQLText() Only missing cases where 'USE INDEX' and 'IGNORE INDEX'. The test doesn't do much since the underlying methods are no-ops by default, but at least it ensures there are no PHP errors from these branches. We can later re-use some of these test cases in tests specific to one backend. Change-Id: Id004a2ae41efaa7a367f964013e25d98ecc591ff --- .../libs/rdbms/database/DatabaseSQLTest.php | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/tests/phpunit/includes/libs/rdbms/database/DatabaseSQLTest.php b/tests/phpunit/includes/libs/rdbms/database/DatabaseSQLTest.php index f519772c76..7b8411729f 100644 --- a/tests/phpunit/includes/libs/rdbms/database/DatabaseSQLTest.php +++ b/tests/phpunit/includes/libs/rdbms/database/DatabaseSQLTest.php @@ -31,6 +31,8 @@ class DatabaseSQLTest extends PHPUnit_Framework_TestCase { * @covers Wikimedia\Rdbms\Database::select * @covers Wikimedia\Rdbms\Database::selectSQLText * @covers Wikimedia\Rdbms\Database::tableNamesWithIndexClauseOrJOIN + * @covers Wikimedia\Rdbms\Database::useIndexClause + * @covers Wikimedia\Rdbms\Database::ignoreIndexClause * @covers Wikimedia\Rdbms\Database::makeSelectOptions * @covers Wikimedia\Rdbms\Database::makeOrderBy * @covers Wikimedia\Rdbms\Database::makeGroupByWithHaving @@ -151,6 +153,24 @@ class DatabaseSQLTest extends PHPUnit_Framework_TestCase { "FROM table " . "WHERE alias IN ('1','2','3','4')" ], + [ + [ + 'tables' => 'table', + 'fields' => [ 'field' ], + 'options' => [ 'USE INDEX' => [ 'table' => 'X' ] ], + ], + // No-op by default + "SELECT field FROM table" + ], + [ + [ + 'tables' => 'table', + 'fields' => [ 'field' ], + 'options' => [ 'IGNORE INDEX' => [ 'table' => 'X' ] ], + ], + // No-op by default + "SELECT field FROM table" + ], [ [ 'tables' => 'table', -- 2.20.1