aboutsummaryrefslogtreecommitdiffstats
path: root/tests/phpunit/integration/includes/db
diff options
context:
space:
mode:
authorTimo Tijhof <krinkle@fastmail.com>2024-06-11 22:53:13 +0100
committerDannyS712 <dannys712.wiki@gmail.com>2024-06-11 22:47:42 +0000
commit9153336c7bdb2a7b5acd61465a1eceafcb306380 (patch)
tree3582c7f7c3d9146dd48f2237b27cb91e54e00269 /tests/phpunit/integration/includes/db
parentdd0af798e6f357b8cb395a790dadc7285bfd3503 (diff)
downloadmediawikicore-9153336c7bdb2a7b5acd61465a1eceafcb306380.tar.gz
mediawikicore-9153336c7bdb2a7b5acd61465a1eceafcb306380.zip
rdbms: Widen `@covers` tags in phpunit tests
> Given all called methods are de-facto and liberally claimed, and > that we keep the coverage limited to the subject class, it maintains > the spirit and intent by listing the class explicitly instead. > > PHPUnit offers a more precise tool when you need it (i.e. when testing > legacy monster/god classes), but for well-written code, the > class-wide tag is exactly what you want. > > We lose useful coverage and waste valuable time on keeping tags > accurate through refactors (or worse, forget to do so). > Tracking tiny per-method details wastes time in realizing (and > fixing) when people inevitably don't keep them in sync, and time > lost in finding uncovered code to write tests to realize it was > already covered but "not yet claimed". Ref https://gerrit.wikimedia.org/r/q/owner:Krinkle+is:merged+message:Widen Change-Id: I0fcbdb2936130b725000a899d733ec306e93b273
Diffstat (limited to 'tests/phpunit/integration/includes/db')
-rw-r--r--tests/phpunit/integration/includes/db/DatabaseMysqlTest.php61
-rw-r--r--tests/phpunit/integration/includes/db/DatabasePostgresTest.php41
-rw-r--r--tests/phpunit/integration/includes/db/DatabaseSqliteTest.php58
3 files changed, 10 insertions, 150 deletions
diff --git a/tests/phpunit/integration/includes/db/DatabaseMysqlTest.php b/tests/phpunit/integration/includes/db/DatabaseMysqlTest.php
index 5fd0942fbe1e..e714b4b8913b 100644
--- a/tests/phpunit/integration/includes/db/DatabaseMysqlTest.php
+++ b/tests/phpunit/integration/includes/db/DatabaseMysqlTest.php
@@ -13,6 +13,9 @@ use Wikimedia\Rdbms\IDatabase;
use Wikimedia\Rdbms\TransactionManager;
/**
+ * @covers \Wikimedia\Rdbms\Database
+ * @covers \Wikimedia\Rdbms\DatabaseMySQL
+ * @covers \Wikimedia\Rdbms\Platform\MySQLPlatform
* @group mysql
* @group Database
* @group medium
@@ -44,9 +47,6 @@ class DatabaseMysqlTest extends \MediaWikiIntegrationTestCase {
parent::tearDown();
}
- /**
- * @covers \Wikimedia\Rdbms\Database::query()
- */
public function testQueryTimeout() {
try {
$this->conn->query(
@@ -62,9 +62,6 @@ class DatabaseMysqlTest extends \MediaWikiIntegrationTestCase {
$this->assertSame( 'x', $row->v, "Still connected/usable" );
}
- /**
- * @covers \Wikimedia\Rdbms\Database::query()
- */
public function testConnectionKill() {
try {
$this->conn->query( 'KILL (SELECT connection_id())', __METHOD__ );
@@ -77,11 +74,6 @@ class DatabaseMysqlTest extends \MediaWikiIntegrationTestCase {
$this->assertSame( 'x', $row->v, "Recovered" );
}
- /**
- * @covers \Wikimedia\Rdbms\Database::query()
- * @covers \Wikimedia\Rdbms\Database::rollback()
- * @covers \Wikimedia\Rdbms\Database::flushSession()
- */
public function testConnectionLossQuery() {
$row = $this->conn->query( 'SELECT connection_id() AS id', __METHOD__ )->fetchObject();
$encId = intval( $row->id );
@@ -155,9 +147,6 @@ class DatabaseMysqlTest extends \MediaWikiIntegrationTestCase {
$adminConn->close( __METHOD__ );
}
- /**
- * @covers \Wikimedia\Rdbms\Database::getScopedLockAndFlush()
- */
public function testConnectionLossScopedLock() {
$row = $this->conn->query( 'SELECT connection_id() AS id', __METHOD__ )->fetchObject();
$encId = intval( $row->id );
@@ -182,12 +171,6 @@ class DatabaseMysqlTest extends \MediaWikiIntegrationTestCase {
$this->conn->unlock( 'x', __METHOD__ );
}
- /**
- * @covers \Wikimedia\Rdbms\Database::query()
- * @covers \Wikimedia\Rdbms\Database::cancelAtomic()
- * @covers \Wikimedia\Rdbms\Database::rollback()
- * @covers \Wikimedia\Rdbms\Database::flushSession()
- */
public function testTransactionError() {
$this->assertSame( TransactionManager::STATUS_TRX_NONE, $this->conn->trxStatus() );
@@ -249,10 +232,7 @@ class DatabaseMysqlTest extends \MediaWikiIntegrationTestCase {
$adminConn->close( __METHOD__ );
}
- /**
- * @return DatabaseMySQL
- */
- private function newConnection() {
+ private function newConnection(): DatabaseMySQL {
$lb = MediaWikiServices::getInstance()->getDBLoadBalancer();
$dbFactory = MediaWikiServices::getInstance()->getDatabaseFactory();
/** @var DatabaseMySQL $conn */
@@ -271,10 +251,6 @@ class DatabaseMysqlTest extends \MediaWikiIntegrationTestCase {
return $conn;
}
- /**
- * @covers \Wikimedia\Rdbms\Database::insert()
- * @covers \Wikimedia\Rdbms\Database::insertId()
- */
public function testInsertIdAfterInsert() {
$dTable = $this->createDestTable();
@@ -291,10 +267,6 @@ class DatabaseMysqlTest extends \MediaWikiIntegrationTestCase {
$this->dropDestTable();
}
- /**
- * @covers \Wikimedia\Rdbms\Database::insert()
- * @covers \Wikimedia\Rdbms\Database::insertId()
- */
public function testInsertIdAfterInsertIgnore() {
$dTable = $this->createDestTable();
@@ -316,10 +288,6 @@ class DatabaseMysqlTest extends \MediaWikiIntegrationTestCase {
$this->dropDestTable();
}
- /**
- * @covers \Wikimedia\Rdbms\Database::replace()
- * @covers \Wikimedia\Rdbms\Database::insertId()
- */
public function testInsertIdAfterReplace() {
$dTable = $this->createDestTable();
@@ -341,10 +309,6 @@ class DatabaseMysqlTest extends \MediaWikiIntegrationTestCase {
$this->dropDestTable();
}
- /**
- * @covers \Wikimedia\Rdbms\Database::upsert()
- * @covers \Wikimedia\Rdbms\Database::insertId()
- */
public function testInsertIdAfterUpsert() {
$dTable = $this->createDestTable();
@@ -370,10 +334,6 @@ class DatabaseMysqlTest extends \MediaWikiIntegrationTestCase {
$this->dropDestTable();
}
- /**
- * @covers \Wikimedia\Rdbms\Database::insertSelect()
- * @covers \Wikimedia\Rdbms\Database::insertId()
- */
public function testInsertIdAfterInsertSelect() {
$sTable = $this->createSourceTable();
$dTable = $this->createDestTable();
@@ -403,10 +363,6 @@ class DatabaseMysqlTest extends \MediaWikiIntegrationTestCase {
$this->dropDestTable();
}
- /**
- * @covers \Wikimedia\Rdbms\Database::insertSelect()
- * @covers \Wikimedia\Rdbms\Database::insertId()
- */
public function testInsertIdAfterInsertSelectIgnore() {
$sTable = $this->createSourceTable();
$dTable = $this->createDestTable();
@@ -500,13 +456,6 @@ class DatabaseMysqlTest extends \MediaWikiIntegrationTestCase {
$this->assertSame( 1, $this->conn->affectedRows(), 'Key conflict, nothing changed on database' );
}
- /**
- * @covers \Wikimedia\Rdbms\DatabaseMySQL::fieldExists()
- * @covers \Wikimedia\Rdbms\DatabaseMySQL::indexExists()
- * @covers \Wikimedia\Rdbms\DatabaseMySQL::indexUnique()
- * @covers \Wikimedia\Rdbms\DatabaseMySQL::fieldInfo()
- * @covers \Wikimedia\Rdbms\DatabaseMySQL::indexInfo()
- */
public function testFieldAndIndexInfo() {
global $wgDBname;
@@ -586,8 +535,6 @@ class DatabaseMysqlTest extends \MediaWikiIntegrationTestCase {
/**
* Insert a null value into a field that is not nullable using INSERT IGNORE
- *
- * @covers \Wikimedia\Rdbms\DatabaseMySQL::checkInsertWarnings
*/
public function testInsertIgnoreNull() {
$this->expectException( DBQueryError::class );
diff --git a/tests/phpunit/integration/includes/db/DatabasePostgresTest.php b/tests/phpunit/integration/includes/db/DatabasePostgresTest.php
index 06b2a26fc40b..93e21aaae966 100644
--- a/tests/phpunit/integration/includes/db/DatabasePostgresTest.php
+++ b/tests/phpunit/integration/includes/db/DatabasePostgresTest.php
@@ -8,6 +8,9 @@ use Wikimedia\ScopedCallback;
use Wikimedia\TestingAccessWrapper;
/**
+ * @covers \Wikimedia\Rdbms\Database
+ * @covers \Wikimedia\Rdbms\DatabasePostgres
+ * @covers \Wikimedia\Rdbms\Platform\PostgresPlatform
* @group Database
*/
class DatabasePostgresTest extends MediaWikiIntegrationTestCase {
@@ -86,7 +89,6 @@ class DatabasePostgresTest extends MediaWikiIntegrationTestCase {
/**
* FIXME: See https://phabricator.wikimedia.org/T259084.
* @group Broken
- * @covers \Wikimedia\Rdbms\DatabasePostgres::insert
*/
public function testInsertIgnoreOld() {
if ( $this->db->getServerVersion() < 9.5 ) {
@@ -107,7 +109,6 @@ class DatabasePostgresTest extends MediaWikiIntegrationTestCase {
/**
* FIXME: See https://phabricator.wikimedia.org/T259084.
* @group Broken
- * @covers \Wikimedia\Rdbms\DatabasePostgres::insert
*/
public function testInsertIgnoreNew() {
if ( $this->db->getServerVersion() < 9.5 ) {
@@ -178,7 +179,6 @@ class DatabasePostgresTest extends MediaWikiIntegrationTestCase {
/**
* FIXME: See https://phabricator.wikimedia.org/T259084.
* @group Broken
- * @covers \Wikimedia\Rdbms\DatabasePostgres::doInsertSelectNative
*/
public function testInsertSelectIgnoreOld() {
if ( $this->db->getServerVersion() < 9.5 ) {
@@ -199,7 +199,6 @@ class DatabasePostgresTest extends MediaWikiIntegrationTestCase {
/**
* FIXME: See https://phabricator.wikimedia.org/T259084.
* @group Broken
- * @covers \Wikimedia\Rdbms\DatabasePostgres::doInsertSelectNative
*/
public function testInsertSelectIgnoreNew() {
if ( $this->db->getServerVersion() < 9.5 ) {
@@ -209,9 +208,6 @@ class DatabasePostgresTest extends MediaWikiIntegrationTestCase {
$this->doTestInsertSelectIgnore();
}
- /**
- * @covers \Wikimedia\Rdbms\DatabasePostgres::getAttributes
- */
public function testAttributes() {
$dbFactory = $this->getServiceContainer()->getDatabaseFactory();
$this->assertTrue(
@@ -219,10 +215,6 @@ class DatabasePostgresTest extends MediaWikiIntegrationTestCase {
);
}
- /**
- * @covers \Wikimedia\Rdbms\Database::insert()
- * @covers \Wikimedia\Rdbms\Database::insertId()
- */
public function testInsertIdAfterInsert() {
$rows = [ [ 'k' => 'Luca', 'v' => mt_rand( 1, 100 ), 't' => time() ] ];
@@ -234,10 +226,6 @@ class DatabasePostgresTest extends MediaWikiIntegrationTestCase {
$this->assertSame( 1, $this->db->affectedRows() );
}
- /**
- * @covers \Wikimedia\Rdbms\Database::insert()
- * @covers \Wikimedia\Rdbms\Database::insertId()
- */
public function testInsertIdAfterInsertIgnore() {
$rows = [ [ 'k' => 'Luca', 'v' => mt_rand( 1, 100 ), 't' => time() ] ];
@@ -254,10 +242,6 @@ class DatabasePostgresTest extends MediaWikiIntegrationTestCase {
$this->assertSame( 1, $this->db->affectedRows() );
}
- /**
- * @covers \Wikimedia\Rdbms\Database::replace()
- * @covers \Wikimedia\Rdbms\Database::insertId()
- */
public function testInsertIdAfterReplace() {
$rows = [ [ 'k' => 'Luca', 'v' => mt_rand( 1, 100 ), 't' => time() ] ];
@@ -274,10 +258,6 @@ class DatabasePostgresTest extends MediaWikiIntegrationTestCase {
$this->assertSame( 1, $this->db->affectedRows() );
}
- /**
- * @covers \Wikimedia\Rdbms\Database::upsert()
- * @covers \Wikimedia\Rdbms\Database::insertId()
- */
public function testInsertIdAfterUpsert() {
$rows = [ [ 'k' => 'Luca', 'v' => mt_rand( 1, 100 ), 't' => time() ] ];
$set = [
@@ -298,10 +278,6 @@ class DatabasePostgresTest extends MediaWikiIntegrationTestCase {
$this->assertSame( 1, $this->db->affectedRows() );
}
- /**
- * @covers \Wikimedia\Rdbms\Database::insertSelect()
- * @covers \Wikimedia\Rdbms\Database::insertId()
- */
public function testInsertIdAfterInsertSelect() {
$rows = [ [ 'sk' => 'Luca', 'sv' => mt_rand( 1, 100 ), 'st' => time() ] ];
$this->db->insert( self::SRC_TABLE, $rows, __METHOD__, 'IGNORE' );
@@ -328,10 +304,6 @@ class DatabasePostgresTest extends MediaWikiIntegrationTestCase {
$this->assertSame( 1, $this->db->affectedRows() );
}
- /**
- * @covers \Wikimedia\Rdbms\Database::insertSelect()
- * @covers \Wikimedia\Rdbms\Database::insertId()
- */
public function testInsertIdAfterInsertSelectIgnore() {
$rows = [ [ 'sk' => 'Luca', 'sv' => mt_rand( 1, 100 ), 'st' => time() ] ];
$this->db->insert( self::SRC_TABLE, $rows, __METHOD__, 'IGNORE' );
@@ -370,13 +342,6 @@ class DatabasePostgresTest extends MediaWikiIntegrationTestCase {
$this->assertSame( 1, $this->db->affectedRows() );
}
- /**
- * @covers \Wikimedia\Rdbms\DatabasePostgres::fieldExists()
- * @covers \Wikimedia\Rdbms\DatabasePostgres::indexExists()
- * @covers \Wikimedia\Rdbms\DatabasePostgres::indexUnique()
- * @covers \Wikimedia\Rdbms\DatabasePostgres::fieldInfo()
- * @covers \Wikimedia\Rdbms\DatabasePostgres::indexInfo()
- */
public function testFieldAndIndexInfo() {
global $wgDBname;
diff --git a/tests/phpunit/integration/includes/db/DatabaseSqliteTest.php b/tests/phpunit/integration/includes/db/DatabaseSqliteTest.php
index 7b76dba61857..357dd5d73d24 100644
--- a/tests/phpunit/integration/includes/db/DatabaseSqliteTest.php
+++ b/tests/phpunit/integration/includes/db/DatabaseSqliteTest.php
@@ -11,6 +11,9 @@ use Wikimedia\Rdbms\ResultWrapper;
use Wikimedia\Rdbms\TransactionProfiler;
/**
+ * @covers \Wikimedia\Rdbms\Database
+ * @covers \Wikimedia\Rdbms\DatabaseSqlite
+ * @covers \Wikimedia\Rdbms\Platform\SqlitePlatform
* @group sqlite
* @group Database
* @group medium
@@ -126,7 +129,6 @@ class DatabaseSqliteTest extends \MediaWikiIntegrationTestCase {
/**
* @dataProvider provideAddQuotes()
- * @covers \Wikimedia\Rdbms\DatabaseSqlite::addQuotes
*/
public function testAddQuotes( $value, $expected ) {
// check quoting
@@ -150,9 +152,6 @@ class DatabaseSqliteTest extends \MediaWikiIntegrationTestCase {
}
}
- /**
- * @covers \Wikimedia\Rdbms\DatabaseSqlite::duplicateTableStructure
- */
public function testDuplicateTableStructure() {
$db = DatabaseSqlite::newStandaloneInstance( ':memory:' );
$db->query( 'CREATE TABLE foo(foo, barfoo)' );
@@ -202,9 +201,6 @@ class DatabaseSqliteTest extends \MediaWikiIntegrationTestCase {
);
}
- /**
- * @covers \Wikimedia\Rdbms\DatabaseSqlite::duplicateTableStructure
- */
public function testDuplicateTableStructureVirtual() {
$db = DatabaseSqlite::newStandaloneInstance( ':memory:' );
if ( $db->getFulltextSearchModule() != 'FTS3' ) {
@@ -233,9 +229,6 @@ class DatabaseSqliteTest extends \MediaWikiIntegrationTestCase {
);
}
- /**
- * @covers \Wikimedia\Rdbms\DatabaseSqlite::deleteJoin
- */
public function testDeleteJoin() {
$db = DatabaseSqlite::newStandaloneInstance( ':memory:' );
$db->query( 'CREATE TABLE a (a_1)', __METHOD__ );
@@ -274,9 +267,6 @@ class DatabaseSqliteTest extends \MediaWikiIntegrationTestCase {
$this->assertTrue( $result, $result );
}
- /**
- * @covers \Wikimedia\Rdbms\DatabaseSqlite::insertId
- */
public function testInsertIdType() {
$db = DatabaseSqlite::newStandaloneInstance( ':memory:' );
@@ -288,9 +278,6 @@ class DatabaseSqliteTest extends \MediaWikiIntegrationTestCase {
$this->assertTrue( $db->close(), "closing database" );
}
- /**
- * @covers \Wikimedia\Rdbms\DatabaseSqlite::insert
- */
public function testInsertAffectedRows() {
$db = DatabaseSqlite::newStandaloneInstance( ':memory:' );
$db->query( 'CREATE TABLE testInsertAffectedRows ( foo )', __METHOD__ );
@@ -320,9 +307,6 @@ class DatabaseSqliteTest extends \MediaWikiIntegrationTestCase {
$this->assertFalse( (bool)$row['a'] );
}
- /**
- * @covers \Wikimedia\Rdbms\DatabaseSqlite::__toString
- */
public function testToString() {
$db = DatabaseSqlite::newStandaloneInstance( ':memory:' );
@@ -331,16 +315,12 @@ class DatabaseSqliteTest extends \MediaWikiIntegrationTestCase {
$this->assertStringContainsString( 'sqlite object', $toString );
}
- /**
- * @covers \Wikimedia\Rdbms\DatabaseSqlite::getAttributes()
- */
public function testsAttributes() {
$dbFactory = $this->getServiceContainer()->getDatabaseFactory();
$this->assertTrue( $dbFactory->attributesFromType( 'sqlite' )[Database::ATTR_DB_LEVEL_LOCKING] );
}
/**
- * @covers \Wikimedia\Rdbms\DatabaseSqlite::insert()
* @param string $version
* @param string $table
* @param array $rows
@@ -378,7 +358,6 @@ class DatabaseSqliteTest extends \MediaWikiIntegrationTestCase {
}
/**
- * @covers \Wikimedia\Rdbms\DatabaseSqlite::replace()
* @param string $version
* @param string $table
* @param array $ukeys
@@ -418,10 +397,6 @@ class DatabaseSqliteTest extends \MediaWikiIntegrationTestCase {
];
}
- /**
- * @covers \Wikimedia\Rdbms\DatabaseSqlite::insert()
- * @covers \Wikimedia\Rdbms\DatabaseSqlite::insertId()
- */
public function testInsertIdAfterInsert() {
$db = DatabaseSqlite::newStandaloneInstance( ':memory:' );
$dTable = $this->createDestTable( $db );
@@ -437,10 +412,6 @@ class DatabaseSqliteTest extends \MediaWikiIntegrationTestCase {
$this->assertSame( 0, $db->insertId() );
}
- /**
- * @covers \Wikimedia\Rdbms\DatabaseSqlite::insert()
- * @covers \Wikimedia\Rdbms\DatabaseSqlite::insertId()
- */
public function testInsertIdAfterInsertIgnore() {
$db = DatabaseSqlite::newStandaloneInstance( ':memory:' );
$dTable = $this->createDestTable( $db );
@@ -461,10 +432,6 @@ class DatabaseSqliteTest extends \MediaWikiIntegrationTestCase {
$this->assertSame( 0, $db->insertId() );
}
- /**
- * @covers \Wikimedia\Rdbms\DatabaseSqlite::replace()
- * @covers \Wikimedia\Rdbms\DatabaseSqlite::insertId()
- */
public function testInsertIdAfterReplace() {
$db = DatabaseSqlite::newStandaloneInstance( ':memory:' );
$dTable = $this->createDestTable( $db );
@@ -485,10 +452,6 @@ class DatabaseSqliteTest extends \MediaWikiIntegrationTestCase {
$this->assertSame( 0, $db->insertId() );
}
- /**
- * @covers \Wikimedia\Rdbms\DatabaseSqlite::upsert()
- * @covers \Wikimedia\Rdbms\DatabaseSqlite::insertId()
- */
public function testInsertIdAfterUpsert() {
$db = DatabaseSqlite::newStandaloneInstance( ':memory:' );
$dTable = $this->createDestTable( $db );
@@ -518,10 +481,6 @@ class DatabaseSqliteTest extends \MediaWikiIntegrationTestCase {
$this->assertSame( 0, $db->insertId() );
}
- /**
- * @covers \Wikimedia\Rdbms\DatabaseSqlite::insertSelect()
- * @covers \Wikimedia\Rdbms\DatabaseSqlite::insertId()
- */
public function testInsertIdAfterInsertSelect() {
$db = DatabaseSqlite::newStandaloneInstance( ':memory:' );
$sTable = $this->createSourceTable( $db );
@@ -553,10 +512,6 @@ class DatabaseSqliteTest extends \MediaWikiIntegrationTestCase {
$this->assertSame( 0, $db->insertId() );
}
- /**
- * @covers \Wikimedia\Rdbms\DatabaseSqlite::insertSelect()
- * @covers \Wikimedia\Rdbms\DatabaseSqlite::insertId()
- */
public function testInsertIdAfterInsertSelectIgnore() {
$db = DatabaseSqlite::newStandaloneInstance( ':memory:' );
$sTable = $this->createSourceTable( $db );
@@ -600,13 +555,6 @@ class DatabaseSqliteTest extends \MediaWikiIntegrationTestCase {
$this->assertSame( 0, $db->insertId() );
}
- /**
- * @covers \Wikimedia\Rdbms\DatabaseSqlite::fieldExists()
- * @covers \Wikimedia\Rdbms\DatabaseSqlite::indexExists()
- * @covers \Wikimedia\Rdbms\DatabaseSqlite::indexUnique()
- * @covers \Wikimedia\Rdbms\DatabaseSqlite::fieldInfo()
- * @covers \Wikimedia\Rdbms\DatabaseSqlite::indexInfo()
- */
public function testFieldAndIndexInfo() {
$db = DatabaseSqlite::newStandaloneInstance( ':memory:' );
$db->query(