Merge "Add @covers for GenderCache + MessageCache tests"
[lhc/web/wiklou.git] / tests / phpunit / includes / db / DatabaseSQLTest.php
index caa3368..726d63a 100644 (file)
@@ -6,6 +6,9 @@
  */
 class DatabaseSQLTest extends MediaWikiTestCase {
 
+       /**
+        * @var DatabaseTestHelper
+        */
        private $database;
 
        protected function setUp() {
@@ -22,6 +25,7 @@ class DatabaseSQLTest extends MediaWikiTestCase {
 
        /**
         * @dataProvider provideSelect
+        * @covers DatabaseBase::select
         */
        function testSelect( $sql, $sqlText ) {
                $this->database->select(
@@ -123,6 +127,7 @@ class DatabaseSQLTest extends MediaWikiTestCase {
 
        /**
         * @dataProvider provideUpdate
+        * @covers DatabaseBase::update
         */
        function testUpdate( $sql, $sqlText ) {
                $this->database->update(
@@ -174,6 +179,7 @@ class DatabaseSQLTest extends MediaWikiTestCase {
 
        /**
         * @dataProvider provideDelete
+        * @covers DatabaseBase::delete
         */
        function testDelete( $sql, $sqlText ) {
                $this->database->delete(
@@ -204,8 +210,45 @@ class DatabaseSQLTest extends MediaWikiTestCase {
                );
        }
 
+       /**
+        * @dataProvider provideUpsert
+        * @covers DatabaseBase::upsert
+        */
+       function testUpsert( $sql, $sqlText ) {
+               $this->database->upsert(
+                       $sql['table'],
+                       $sql['rows'],
+                       $sql['uniqueIndexes'],
+                       $sql['set'],
+                       __METHOD__
+               );
+               $this->assertLastSql( $sqlText );
+       }
+
+       public static function provideUpsert() {
+               return array(
+                       array(
+                               array(
+                                       'table' => 'upsert_table',
+                                       'rows' => array( 'field' => 'text', 'field2' => 'text2' ),
+                                       'uniqueIndexes' => array( 'field' ),
+                                       'set' => array( 'field' => 'set' ),
+                               ),
+                               "BEGIN; " .
+                                       "UPDATE upsert_table " .
+                                       "SET field = 'set' " .
+                                       "WHERE ((field = 'text')); " .
+                                       "INSERT IGNORE INTO upsert_table " .
+                                       "(field,field2) " .
+                                       "VALUES ('text','text2'); " .
+                                       "COMMIT"
+                       ),
+               );
+       }
+
        /**
         * @dataProvider provideDeleteJoin
+        * @covers DatabaseBase::deleteJoin
         */
        function testDeleteJoin( $sql, $sqlText ) {
                $this->database->deleteJoin(
@@ -231,7 +274,7 @@ class DatabaseSQLTest extends MediaWikiTestCase {
                                ),
                                "DELETE FROM table " .
                                        "WHERE field IN (" .
-                                               "SELECT field_join FROM table_join WHERE alias = 'text'" .
+                                       "SELECT field_join FROM table_join WHERE alias = 'text'" .
                                        ")"
                        ),
                        array(
@@ -244,7 +287,7 @@ class DatabaseSQLTest extends MediaWikiTestCase {
                                ),
                                "DELETE FROM table " .
                                        "WHERE field IN (" .
-                                               "SELECT field_join FROM table_join " .
+                                       "SELECT field_join FROM table_join " .
                                        ")"
                        ),
                );
@@ -252,6 +295,7 @@ class DatabaseSQLTest extends MediaWikiTestCase {
 
        /**
         * @dataProvider provideInsert
+        * @covers DatabaseBase::insert
         */
        function testInsert( $sql, $sqlText ) {
                $this->database->insert(
@@ -296,14 +340,15 @@ class DatabaseSQLTest extends MediaWikiTestCase {
                                "INSERT IGNORE INTO table " .
                                        "(field,field2) " .
                                        "VALUES " .
-                                               "('text','2')," .
-                                               "('multi','3')"
+                                       "('text','2')," .
+                                       "('multi','3')"
                        ),
                );
        }
 
        /**
         * @dataProvider provideInsertSelect
+        * @covers DatabaseBase::insertSelect
         */
        function testInsertSelect( $sql, $sqlText ) {
                $this->database->insertSelect(
@@ -330,7 +375,7 @@ class DatabaseSQLTest extends MediaWikiTestCase {
                                "INSERT INTO insert_table " .
                                        "(field_insert,field) " .
                                        "SELECT field_select,field2 " .
-                                               "FROM select_table"
+                                       "FROM select_table"
                        ),
                        array(
                                array(
@@ -342,8 +387,8 @@ class DatabaseSQLTest extends MediaWikiTestCase {
                                "INSERT INTO insert_table " .
                                        "(field_insert,field) " .
                                        "SELECT field_select,field2 " .
-                                               "FROM select_table " .
-                                               "WHERE field = '2'"
+                                       "FROM select_table " .
+                                       "WHERE field = '2'"
                        ),
                        array(
                                array(
@@ -357,15 +402,16 @@ class DatabaseSQLTest extends MediaWikiTestCase {
                                "INSERT IGNORE INTO insert_table " .
                                        "(field_insert,field) " .
                                        "SELECT field_select,field2 " .
-                                               "FROM select_table " .
-                                               "WHERE field = '2' " .
-                                               "ORDER BY field"
+                                       "FROM select_table " .
+                                       "WHERE field = '2' " .
+                                       "ORDER BY field"
                        ),
                );
        }
 
        /**
         * @dataProvider provideReplace
+        * @covers DatabaseBase::replace
         */
        function testReplace( $sql, $sqlText ) {
                $this->database->replace(
@@ -388,8 +434,8 @@ class DatabaseSQLTest extends MediaWikiTestCase {
                                "DELETE FROM replace_table " .
                                        "WHERE ( field='text' ); " .
                                        "INSERT INTO replace_table " .
-                                               "(field,field2) " .
-                                               "VALUES ('text','text2')"
+                                       "(field,field2) " .
+                                       "VALUES ('text','text2')"
                        ),
                        array(
                                array(
@@ -404,8 +450,8 @@ class DatabaseSQLTest extends MediaWikiTestCase {
                                "DELETE FROM module_deps " .
                                        "WHERE ( md_module='module' AND md_skin='skin' ); " .
                                        "INSERT INTO module_deps " .
-                                               "(md_module,md_skin,md_deps) " .
-                                               "VALUES ('module','skin','deps')"
+                                       "(md_module,md_skin,md_deps) " .
+                                       "VALUES ('module','skin','deps')"
                        ),
                        array(
                                array(
@@ -426,13 +472,13 @@ class DatabaseSQLTest extends MediaWikiTestCase {
                                "DELETE FROM module_deps " .
                                        "WHERE ( md_module='module' AND md_skin='skin' ); " .
                                        "INSERT INTO module_deps " .
-                                               "(md_module,md_skin,md_deps) " .
-                                               "VALUES ('module','skin','deps'); " .
-                               "DELETE FROM module_deps " .
+                                       "(md_module,md_skin,md_deps) " .
+                                       "VALUES ('module','skin','deps'); " .
+                                       "DELETE FROM module_deps " .
                                        "WHERE ( md_module='module2' AND md_skin='skin2' ); " .
                                        "INSERT INTO module_deps " .
-                                               "(md_module,md_skin,md_deps) " .
-                                               "VALUES ('module2','skin2','deps2')"
+                                       "(md_module,md_skin,md_deps) " .
+                                       "VALUES ('module2','skin2','deps2')"
                        ),
                        array(
                                array(
@@ -453,13 +499,13 @@ class DatabaseSQLTest extends MediaWikiTestCase {
                                "DELETE FROM module_deps " .
                                        "WHERE ( md_module='module' ) OR ( md_skin='skin' ); " .
                                        "INSERT INTO module_deps " .
-                                               "(md_module,md_skin,md_deps) " .
-                                               "VALUES ('module','skin','deps'); " .
-                               "DELETE FROM module_deps " .
+                                       "(md_module,md_skin,md_deps) " .
+                                       "VALUES ('module','skin','deps'); " .
+                                       "DELETE FROM module_deps " .
                                        "WHERE ( md_module='module2' ) OR ( md_skin='skin2' ); " .
                                        "INSERT INTO module_deps " .
-                                               "(md_module,md_skin,md_deps) " .
-                                               "VALUES ('module2','skin2','deps2')"
+                                       "(md_module,md_skin,md_deps) " .
+                                       "VALUES ('module2','skin2','deps2')"
                        ),
                        array(
                                array(
@@ -480,6 +526,7 @@ class DatabaseSQLTest extends MediaWikiTestCase {
 
        /**
         * @dataProvider provideNativeReplace
+        * @covers DatabaseBase::nativeReplace
         */
        function testNativeReplace( $sql, $sqlText ) {
                $this->database->nativeReplace(
@@ -506,6 +553,7 @@ class DatabaseSQLTest extends MediaWikiTestCase {
 
        /**
         * @dataProvider provideConditional
+        * @covers DatabaseBase::conditional
         */
        function testConditional( $sql, $sqlText ) {
                $this->assertEquals( trim( $this->database->conditional(
@@ -546,6 +594,7 @@ class DatabaseSQLTest extends MediaWikiTestCase {
 
        /**
         * @dataProvider provideBuildConcat
+        * @covers DatabaseBase::buildConcat
         */
        function testBuildConcat( $stringList, $sqlText ) {
                $this->assertEquals( trim( $this->database->buildConcat(
@@ -568,6 +617,7 @@ class DatabaseSQLTest extends MediaWikiTestCase {
 
        /**
         * @dataProvider provideBuildLike
+        * @covers DatabaseBase::buildLike
         */
        function testBuildLike( $array, $sqlText ) {
                $this->assertEquals( trim( $this->database->buildLike(
@@ -598,6 +648,7 @@ class DatabaseSQLTest extends MediaWikiTestCase {
 
        /**
         * @dataProvider provideUnionQueries
+        * @covers DatabaseBase::unionQueries
         */
        function testUnionQueries( $sql, $sqlText ) {
                $this->assertEquals( trim( $this->database->unionQueries(
@@ -632,24 +683,36 @@ class DatabaseSQLTest extends MediaWikiTestCase {
                );
        }
 
+       /**
+        * @covers DatabaseBase::commit
+        */
        function testTransactionCommit() {
                $this->database->begin( __METHOD__ );
                $this->database->commit( __METHOD__ );
                $this->assertLastSql( 'BEGIN; COMMIT' );
        }
 
+       /**
+        * @covers DatabaseBase::rollback
+        */
        function testTransactionRollback() {
                $this->database->begin( __METHOD__ );
                $this->database->rollback( __METHOD__ );
                $this->assertLastSql( 'BEGIN; ROLLBACK' );
        }
 
+       /**
+        * @covers DatabaseBase::dropTable
+        */
        function testDropTable() {
                $this->database->setExistingTables( array( 'table' ) );
                $this->database->dropTable( 'table', __METHOD__ );
                $this->assertLastSql( 'DROP TABLE table' );
        }
 
+       /**
+        * @covers DatabaseBase::dropTable
+        */
        function testDropNonExistingTable() {
                $this->assertFalse(
                        $this->database->dropTable( 'non_existing', __METHOD__ )