Remove FakeDatabaseMysqlBase test class
authorAaron Schulz <aschulz@wikimedia.org>
Fri, 2 Mar 2018 05:25:00 +0000 (21:25 -0800)
committerAaron Schulz <aschulz@wikimedia.org>
Wed, 7 Mar 2018 19:45:04 +0000 (11:45 -0800)
Improve some flag tests that did not seem to test much

Change-Id: Iecfc877645cc66cb696beb2b314a6d149745a530

tests/phpunit/includes/libs/rdbms/database/DatabaseMysqlBaseTest.php

index 1d948d7..d8cf71b 100644 (file)
  * @copyright © 2013 Wikimedia Foundation and contributors
  */
 
  * @copyright © 2013 Wikimedia Foundation and contributors
  */
 
-use Wikimedia\Rdbms\TransactionProfiler;
-use Wikimedia\Rdbms\DatabaseDomain;
 use Wikimedia\Rdbms\MySQLMasterPos;
 use Wikimedia\Rdbms\MySQLMasterPos;
-use Wikimedia\Rdbms\DatabaseMysqlBase;
 use Wikimedia\Rdbms\DatabaseMysqli;
 use Wikimedia\Rdbms\Database;
 use Wikimedia\TestingAccessWrapper;
 
 use Wikimedia\Rdbms\DatabaseMysqli;
 use Wikimedia\Rdbms\Database;
 use Wikimedia\TestingAccessWrapper;
 
-/**
- * Fake class around abstract class so we can call concrete methods.
- */
-class FakeDatabaseMysqlBase extends DatabaseMysqlBase {
-       // From Database
-       function __construct() {
-               $this->profiler = new ProfilerStub( [] );
-               $this->trxProfiler = new TransactionProfiler();
-               $this->cliMode = true;
-               $this->connLogger = new \Psr\Log\NullLogger();
-               $this->queryLogger = new \Psr\Log\NullLogger();
-               $this->errorLogger = function ( Exception $e ) {
-                       wfWarn( get_class( $e ) . ": {$e->getMessage()}" );
-               };
-               $this->currentDomain = DatabaseDomain::newUnspecified();
-       }
-
-       protected function closeConnection() {
-       }
-
-       protected function doQuery( $sql ) {
-       }
-
-       protected function fetchAffectedRowCount() {
-       }
-
-       // From DatabaseMysqli
-       protected function mysqlConnect( $realServer ) {
-       }
-
-       protected function mysqlSetCharset( $charset ) {
-       }
-
-       protected function mysqlFreeResult( $res ) {
-       }
-
-       protected function mysqlFetchObject( $res ) {
-       }
-
-       protected function mysqlFetchArray( $res ) {
-       }
-
-       protected function mysqlNumRows( $res ) {
-       }
-
-       protected function mysqlNumFields( $res ) {
-       }
-
-       protected function mysqlFieldName( $res, $n ) {
-       }
-
-       protected function mysqlFieldType( $res, $n ) {
-       }
-
-       protected function mysqlDataSeek( $res, $row ) {
-       }
-
-       protected function mysqlError( $conn = null ) {
-       }
-
-       protected function mysqlFetchField( $res, $n ) {
-       }
-
-       protected function mysqlRealEscapeString( $s ) {
-       }
-
-       function insertId() {
-       }
-
-       function lastErrno() {
-       }
-
-       function affectedRows() {
-       }
-
-       function getServerVersion() {
-       }
-}
-
 class DatabaseMysqlBaseTest extends PHPUnit\Framework\TestCase {
 
        use MediaWikiCoversValidator;
 class DatabaseMysqlBaseTest extends PHPUnit\Framework\TestCase {
 
        use MediaWikiCoversValidator;
@@ -119,7 +37,11 @@ class DatabaseMysqlBaseTest extends PHPUnit\Framework\TestCase {
         * @covers Wikimedia\Rdbms\DatabaseMysqlBase::addIdentifierQuotes
         */
        public function testAddIdentifierQuotes( $expected, $in ) {
         * @covers Wikimedia\Rdbms\DatabaseMysqlBase::addIdentifierQuotes
         */
        public function testAddIdentifierQuotes( $expected, $in ) {
-               $db = new FakeDatabaseMysqlBase();
+               $db = $this->getMockBuilder( DatabaseMysqli::class )
+                       ->disableOriginalConstructor()
+                       ->setMethods( null )
+                       ->getMock();
+
                $quoted = $db->addIdentifierQuotes( $in );
                $this->assertEquals( $expected, $quoted );
        }
                $quoted = $db->addIdentifierQuotes( $in );
                $this->assertEquals( $expected, $quoted );
        }
@@ -482,9 +404,12 @@ class DatabaseMysqlBaseTest extends PHPUnit\Framework\TestCase {
         * @covers Wikimedia\Rdbms\Database::setFlag
         */
        public function testDBOIgnoreSet() {
         * @covers Wikimedia\Rdbms\Database::setFlag
         */
        public function testDBOIgnoreSet() {
-               $db = new FakeDatabaseMysqlBase();
+               $db = $this->getMockBuilder( DatabaseMysqli::class )
+                       ->disableOriginalConstructor()
+                       ->setMethods( null )
+                       ->getMock();
 
 
-               $db->setFlag( Database::DBO_IGNORE );
+               $db->clearFlag( Database::DBO_IGNORE );
        }
 
        /**
        }
 
        /**
@@ -492,7 +417,10 @@ class DatabaseMysqlBaseTest extends PHPUnit\Framework\TestCase {
         * @covers Wikimedia\Rdbms\Database::clearFlag
         */
        public function testDBOIgnoreClear() {
         * @covers Wikimedia\Rdbms\Database::clearFlag
         */
        public function testDBOIgnoreClear() {
-               $db = new FakeDatabaseMysqlBase();
+               $db = $this->getMockBuilder( DatabaseMysqli::class )
+                       ->disableOriginalConstructor()
+                       ->setMethods( null )
+                       ->getMock();
 
                $db->clearFlag( Database::DBO_IGNORE );
        }
 
                $db->clearFlag( Database::DBO_IGNORE );
        }
@@ -609,7 +537,10 @@ class DatabaseMysqlBaseTest extends PHPUnit\Framework\TestCase {
         * @covers \Wikimedia\Rdbms\DatabaseMysqlBase::buildIntegerCast
         */
        public function testBuildIntegerCast() {
         * @covers \Wikimedia\Rdbms\DatabaseMysqlBase::buildIntegerCast
         */
        public function testBuildIntegerCast() {
-               $db = new FakeDatabaseMysqlBase();
+               $db = $this->getMockBuilder( DatabaseMysqli::class )
+                       ->disableOriginalConstructor()
+                       ->setMethods( null )
+                       ->getMock();
                $output = $db->buildIntegerCast( 'fieldName' );
                $this->assertSame( 'CAST( fieldName AS SIGNED )', $output );
        }
                $output = $db->buildIntegerCast( 'fieldName' );
                $this->assertSame( 'CAST( fieldName AS SIGNED )', $output );
        }