Merge "rdbms: Add more return typehints"
This commit is contained in:
commit
d018c4f6ed
14 changed files with 80 additions and 83 deletions
|
|
@ -301,7 +301,7 @@ class DBConnRef implements IDatabase {
|
|||
return $this->__call( __FUNCTION__, func_get_args() );
|
||||
}
|
||||
|
||||
public function newSelectQueryBuilder() {
|
||||
public function newSelectQueryBuilder(): SelectQueryBuilder {
|
||||
return $this->__call( __FUNCTION__, func_get_args() );
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1832,7 +1832,7 @@ abstract class Database implements IDatabase, IMaintainableDatabase, LoggerAware
|
|||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function newSelectQueryBuilder() {
|
||||
public function newSelectQueryBuilder(): SelectQueryBuilder {
|
||||
return new SelectQueryBuilder( $this );
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -601,7 +601,7 @@ interface IDatabase {
|
|||
*
|
||||
* @return SelectQueryBuilder
|
||||
*/
|
||||
public function newSelectQueryBuilder();
|
||||
public function newSelectQueryBuilder(): SelectQueryBuilder;
|
||||
|
||||
/**
|
||||
* A SELECT wrapper which returns a single field from a single result row
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@ class DatabaseDomain {
|
|||
* @param DatabaseDomain|string $domain Result of DatabaseDomain::toString()
|
||||
* @return DatabaseDomain
|
||||
*/
|
||||
public static function newFromId( $domain ) {
|
||||
public static function newFromId( $domain ): self {
|
||||
if ( $domain instanceof self ) {
|
||||
return $domain;
|
||||
}
|
||||
|
|
@ -197,7 +197,7 @@ class DatabaseDomain {
|
|||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getId() {
|
||||
public function getId(): string {
|
||||
if ( $this->equivalentString === null ) {
|
||||
$this->equivalentString = $this->convertToString();
|
||||
}
|
||||
|
|
@ -208,7 +208,7 @@ class DatabaseDomain {
|
|||
/**
|
||||
* @return string
|
||||
*/
|
||||
private function convertToString() {
|
||||
private function convertToString(): string {
|
||||
$parts = [ (string)$this->database ];
|
||||
if ( $this->schema !== null ) {
|
||||
$parts[] = $this->schema;
|
||||
|
|
|
|||
|
|
@ -160,7 +160,7 @@ interface ILoadBalancer {
|
|||
* @return string
|
||||
* @since 1.36
|
||||
*/
|
||||
public function getClusterName();
|
||||
public function getClusterName(): string;
|
||||
|
||||
/**
|
||||
* Get the local (and default) database domain ID of connection handles
|
||||
|
|
@ -169,14 +169,14 @@ interface ILoadBalancer {
|
|||
* @return string Database domain ID; this specifies DB name, schema, and table prefix
|
||||
* @since 1.31
|
||||
*/
|
||||
public function getLocalDomainID();
|
||||
public function getLocalDomainID(): string;
|
||||
|
||||
/**
|
||||
* @param DatabaseDomain|string|bool $domain Database domain
|
||||
* @return string Value of $domain if it is foreign or the local domain otherwise
|
||||
* @since 1.32
|
||||
*/
|
||||
public function resolveDomainID( $domain );
|
||||
public function resolveDomainID( $domain ): string;
|
||||
|
||||
/**
|
||||
* Close all connection and redefine the local domain for testing or schema creation
|
||||
|
|
@ -383,7 +383,7 @@ interface ILoadBalancer {
|
|||
* @param int $flags Bitfield of CONN_* class constants (e.g. CONN_TRX_AUTOCOMMIT)
|
||||
* @return DBConnRef
|
||||
*/
|
||||
public function getConnectionRef( $i, $groups = [], $domain = false, $flags = 0 );
|
||||
public function getConnectionRef( $i, $groups = [], $domain = false, $flags = 0 ): IDatabase;
|
||||
|
||||
/**
|
||||
* Get a lazy-connecting database handle reference for a server index
|
||||
|
|
@ -483,7 +483,7 @@ interface ILoadBalancer {
|
|||
* @param int $i Specific server index
|
||||
* @return string Readable server name, falling back to the hostname or IP address
|
||||
*/
|
||||
public function getServerName( $i );
|
||||
public function getServerName( $i ): string;
|
||||
|
||||
/**
|
||||
* Return the server configuration map for the server with the specified index
|
||||
|
|
|
|||
|
|
@ -281,7 +281,7 @@ class LoadBalancer implements ILoadBalancer {
|
|||
];
|
||||
}
|
||||
|
||||
public function getClusterName() {
|
||||
public function getClusterName(): string {
|
||||
if ( $this->clusterName !== null ) {
|
||||
$name = $this->clusterName;
|
||||
} else {
|
||||
|
|
@ -292,11 +292,11 @@ class LoadBalancer implements ILoadBalancer {
|
|||
return $name;
|
||||
}
|
||||
|
||||
public function getLocalDomainID() {
|
||||
public function getLocalDomainID(): string {
|
||||
return $this->localDomain->getId();
|
||||
}
|
||||
|
||||
public function resolveDomainID( $domain ) {
|
||||
public function resolveDomainID( $domain ): string {
|
||||
return $this->resolveDomainInstance( $domain )->getId();
|
||||
}
|
||||
|
||||
|
|
@ -304,7 +304,7 @@ class LoadBalancer implements ILoadBalancer {
|
|||
* @param DatabaseDomain|string|bool $domain
|
||||
* @return DatabaseDomain
|
||||
*/
|
||||
final protected function resolveDomainInstance( $domain ) {
|
||||
final protected function resolveDomainInstance( $domain ): DatabaseDomain {
|
||||
if ( $domain instanceof DatabaseDomain ) {
|
||||
return $domain; // already a domain instance
|
||||
} elseif ( $domain === false || $domain === $this->localDomain->getId() ) {
|
||||
|
|
@ -1084,7 +1084,7 @@ class LoadBalancer implements ILoadBalancer {
|
|||
}
|
||||
}
|
||||
|
||||
public function getConnectionRef( $i, $groups = [], $domain = false, $flags = 0 ) {
|
||||
public function getConnectionRef( $i, $groups = [], $domain = false, $flags = 0 ): IDatabase {
|
||||
if ( self::fieldHasBit( $flags, self::CONN_SILENCE_ERRORS ) ) {
|
||||
throw new UnexpectedValueException(
|
||||
__METHOD__ . ' CONN_SILENCE_ERRORS is not supported'
|
||||
|
|
@ -1576,10 +1576,10 @@ class LoadBalancer implements ILoadBalancer {
|
|||
return (bool)$this->getStreamingReplicaIndexes();
|
||||
}
|
||||
|
||||
public function getServerName( $i ) {
|
||||
public function getServerName( $i ): string {
|
||||
$name = $this->servers[$i]['serverName'] ?? ( $this->servers[$i]['host'] ?? '' );
|
||||
|
||||
return ( $name != '' ) ? $name : 'localhost';
|
||||
return ( $name !== '' ) ? $name : 'localhost';
|
||||
}
|
||||
|
||||
public function getServerInfo( $i ) {
|
||||
|
|
|
|||
|
|
@ -13,9 +13,8 @@ use PHPUnit\Framework\MockObject\MockObject;
|
|||
use Psr\Log\NullLogger;
|
||||
use RuntimeException;
|
||||
use WANObjectCache;
|
||||
use Wikimedia\Rdbms\IDatabase;
|
||||
use Wikimedia\Rdbms\DBConnRef;
|
||||
use Wikimedia\Rdbms\LoadBalancer;
|
||||
use Wikimedia\Rdbms\MaintainableDBConnRef;
|
||||
use Wikimedia\TestingAccessWrapper;
|
||||
|
||||
/**
|
||||
|
|
@ -47,17 +46,12 @@ class NameTableStoreTest extends MediaWikiIntegrationTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* @param IDatabase $db
|
||||
* @param DBConnRef $db
|
||||
* @return LoadBalancer
|
||||
*/
|
||||
private function getMockLoadBalancer( $db ) {
|
||||
$mock = $this->getMockBuilder( LoadBalancer::class )
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$mock->method( 'getConnectionRef' )
|
||||
->willReturnCallback( static function ( $i ) use ( $mock, $db ) {
|
||||
return new MaintainableDBConnRef( $mock, $db, $i );
|
||||
} );
|
||||
$mock = $this->createMock( LoadBalancer::class );
|
||||
$mock->method( 'getConnectionRef' )->willReturn( $db );
|
||||
return $mock;
|
||||
}
|
||||
|
||||
|
|
@ -65,7 +59,7 @@ class NameTableStoreTest extends MediaWikiIntegrationTestCase {
|
|||
* @param null $insertCalls
|
||||
* @param null $selectCalls
|
||||
*
|
||||
* @return MockObject|IDatabase
|
||||
* @return MockObject&DBConnRef
|
||||
*/
|
||||
private function getProxyDb( $insertCalls = null, $selectCalls = null ) {
|
||||
$proxiedMethods = [
|
||||
|
|
@ -82,9 +76,7 @@ class NameTableStoreTest extends MediaWikiIntegrationTestCase {
|
|||
'rollback' => null,
|
||||
'commit' => null,
|
||||
];
|
||||
$mock = $this->getMockBuilder( IDatabase::class )
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$mock = $this->createMock( DBConnRef::class );
|
||||
foreach ( $proxiedMethods as $method => $count ) {
|
||||
$mock->expects( is_int( $count ) ? $this->exactly( $count ) : $this->any() )
|
||||
->method( $method )
|
||||
|
|
@ -404,8 +396,6 @@ class NameTableStoreTest extends MediaWikiIntegrationTestCase {
|
|||
->getMock();
|
||||
$lb->method( 'getConnectionRef' )
|
||||
->willReturn( $db );
|
||||
$lb->method( 'resolveDomainID' )
|
||||
->willReturnArgument( 0 );
|
||||
|
||||
// Two instances hitting the real database using separate caches.
|
||||
$store1 = new NameTableStore(
|
||||
|
|
|
|||
|
|
@ -2,7 +2,9 @@
|
|||
|
||||
use MediaWiki\Permissions\Authority;
|
||||
use MediaWiki\Tests\Unit\Permissions\MockAuthorityTrait;
|
||||
use Wikimedia\Rdbms\DBConnRef;
|
||||
use Wikimedia\Rdbms\DBQueryError;
|
||||
use Wikimedia\Rdbms\ILoadBalancer;
|
||||
use Wikimedia\TestingAccessWrapper;
|
||||
use Wikimedia\Timestamp\ConvertibleTimestamp;
|
||||
|
||||
|
|
@ -335,12 +337,9 @@ class ApiMainTest extends ApiTestCase {
|
|||
}
|
||||
|
||||
private function doTestCheckMaxLag( $lag ) {
|
||||
$mockLB = $this->getMockBuilder( LoadBalancer::class )
|
||||
->disableOriginalConstructor()
|
||||
->onlyMethods( [ 'getMaxLag', 'getConnectionRef', '__destruct' ] )
|
||||
->getMock();
|
||||
$mockLB = $this->createMock( ILoadBalancer::class );
|
||||
$mockLB->method( 'getMaxLag' )->willReturn( [ 'somehost', $lag ] );
|
||||
$mockLB->method( 'getConnectionRef' )->willReturn( $this->db );
|
||||
$mockLB->method( 'getConnectionRef' )->willReturn( $this->createMock( DBConnRef::class ) );
|
||||
$this->setService( 'DBLoadBalancer', $mockLB );
|
||||
|
||||
$req = new FauxRequest();
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ use MediaWiki\User\UserIdentityValue;
|
|||
use MediaWiki\User\UserOptionsLookup;
|
||||
use MediaWiki\User\UserOptionsManager;
|
||||
use Psr\Log\NullLogger;
|
||||
use Wikimedia\Rdbms\DBConnRef;
|
||||
use Wikimedia\Rdbms\ILoadBalancer;
|
||||
|
||||
/**
|
||||
|
|
@ -383,7 +384,7 @@ class UserOptionsManagerTest extends UserOptionsLookupTest {
|
|||
}
|
||||
|
||||
public function testOptionsForUpdateNotRefetchedBeforeInsert() {
|
||||
$mockDb = $this->createMock( \Wikimedia\Rdbms\IDatabase::class );
|
||||
$mockDb = $this->createMock( DBConnRef::class );
|
||||
$mockDb->expects( $this->once() ) // This is critical what we are testing
|
||||
->method( 'select' )
|
||||
->willReturn( new FakeResultWrapper( [
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
use MediaWiki\Http\HttpRequestFactory;
|
||||
use Psr\Log\NullLogger;
|
||||
use Wikimedia\Rdbms\IDatabase;
|
||||
use Wikimedia\Rdbms\DBConnRef;
|
||||
use Wikimedia\Rdbms\ILoadBalancer;
|
||||
use Wikimedia\Timestamp\ConvertibleTimestamp;
|
||||
|
||||
|
|
@ -17,13 +17,13 @@ class PingbackTest extends MediaWikiUnitTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* @param IDatabase $database
|
||||
* @param DBConnRef $database
|
||||
* @param HttpRequestFactory $httpRequestFactory
|
||||
* @param bool $enablePingback
|
||||
* @param BagOStuff|null $cache
|
||||
*/
|
||||
private function testRun(
|
||||
$database,
|
||||
DBConnRef $database,
|
||||
$httpRequestFactory,
|
||||
bool $enablePingback = true,
|
||||
$cache = null
|
||||
|
|
@ -48,7 +48,7 @@ class PingbackTest extends MediaWikiUnitTestCase {
|
|||
// - no db calls (no select, lock, or upsert)
|
||||
// - no HTTP request
|
||||
$this->testRun(
|
||||
$this->createNoOpMock( IDatabase::class ),
|
||||
$this->createNoOpMock( DBConnRef::class ),
|
||||
$this->createNoOpMock( HttpRequestFactory::class ),
|
||||
false /* $enablePingback */
|
||||
);
|
||||
|
|
@ -63,7 +63,7 @@ class PingbackTest extends MediaWikiUnitTestCase {
|
|||
// - no db lock
|
||||
// - no HTTP request
|
||||
// - no db upsert for timestamp
|
||||
$database = $this->createNoOpMock( IDatabase::class, [ 'selectField' ] );
|
||||
$database = $this->createNoOpMock( DBConnRef::class, [ 'selectField' ] );
|
||||
$database->expects( $this->once() )->method( 'selectField' )->willReturn( false );
|
||||
$cache = $this->createMock( BagOStuff::class );
|
||||
$cache->method( 'add' )->willReturn( false );
|
||||
|
|
@ -85,7 +85,7 @@ class PingbackTest extends MediaWikiUnitTestCase {
|
|||
// Expect:
|
||||
// - no HTTP request
|
||||
// - no db upsert for timestamp
|
||||
$database = $this->createNoOpMock( IDatabase::class, [ 'selectField', 'lock' ] );
|
||||
$database = $this->createNoOpMock( DBConnRef::class, [ 'selectField', 'lock' ] );
|
||||
$database->expects( $this->once() )->method( 'selectField' )->willReturn( false );
|
||||
$database->expects( $this->once() )->method( 'lock' )->willReturn( false );
|
||||
|
||||
|
|
@ -109,7 +109,7 @@ class PingbackTest extends MediaWikiUnitTestCase {
|
|||
// - db lock acquired
|
||||
// - HTTP POST request
|
||||
// - db upsert for timestamp
|
||||
$database = $this->createNoOpMock( IDatabase::class, [ 'selectField', 'lock', 'upsert' ] );
|
||||
$database = $this->createNoOpMock( DBConnRef::class, [ 'selectField', 'lock', 'upsert' ] );
|
||||
$httpRequestFactory = $this->createNoOpMock( HttpRequestFactory::class, [ 'post' ] );
|
||||
|
||||
$database->expects( $this->once() )->method( 'selectField' )->willReturn( $priorPing );
|
||||
|
|
@ -142,7 +142,7 @@ class PingbackTest extends MediaWikiUnitTestCase {
|
|||
// - no db lock
|
||||
// - no HTTP request
|
||||
// - no db upsert for timestamp
|
||||
$database = $this->createNoOpMock( IDatabase::class, [ 'selectField' ] );
|
||||
$database = $this->createNoOpMock( DBConnRef::class, [ 'selectField' ] );
|
||||
$database->expects( $this->once() )->method( 'selectField' )->willReturn(
|
||||
ConvertibleTimestamp::convert( TS_UNIX, '20110401080000' )
|
||||
);
|
||||
|
|
|
|||
|
|
@ -11,21 +11,27 @@ use Wikimedia\Rdbms\ILoadBalancer;
|
|||
use Wikimedia\Rdbms\LoadBalancer;
|
||||
|
||||
/**
|
||||
* @covers Wikimedia\Rdbms\ConnectionManager
|
||||
* @covers \Wikimedia\Rdbms\ConnectionManager
|
||||
*
|
||||
* @author Daniel Kinzler
|
||||
*/
|
||||
class ConnectionManagerTest extends TestCase {
|
||||
/**
|
||||
* @return IDatabase|MockObject
|
||||
* @return IDatabase&MockObject
|
||||
*/
|
||||
private function getIDatabaseMock() {
|
||||
return $this->getMockBuilder( IDatabase::class )
|
||||
->getMock();
|
||||
return $this->createMock( IDatabase::class );
|
||||
}
|
||||
|
||||
/**
|
||||
* @return LoadBalancer|MockObject
|
||||
* @return DBConnRef&MockObject
|
||||
*/
|
||||
private function getDBConnRefMock() {
|
||||
return $this->createMock( DBConnRef::class );
|
||||
}
|
||||
|
||||
/**
|
||||
* @return LoadBalancer&MockObject
|
||||
*/
|
||||
private function getLoadBalancerMock() {
|
||||
return $this->createMock( LoadBalancer::class );
|
||||
|
|
@ -105,7 +111,7 @@ class ConnectionManagerTest extends TestCase {
|
|||
}
|
||||
|
||||
public function testGetReadConnectionRef_nullGroups() {
|
||||
$database = $this->getIDatabaseMock();
|
||||
$database = $this->getDBConnRefMock();
|
||||
$lb = $this->getLoadBalancerMock();
|
||||
|
||||
$lb->expects( $this->once() )
|
||||
|
|
@ -120,7 +126,7 @@ class ConnectionManagerTest extends TestCase {
|
|||
}
|
||||
|
||||
public function testGetReadConnectionRef_withGroups() {
|
||||
$database = $this->getIDatabaseMock();
|
||||
$database = $this->getDBConnRefMock();
|
||||
$lb = $this->getLoadBalancerMock();
|
||||
|
||||
$lb->expects( $this->once() )
|
||||
|
|
@ -165,7 +171,7 @@ class ConnectionManagerTest extends TestCase {
|
|||
}
|
||||
|
||||
public function testGetWriteConnectionRef() {
|
||||
$database = $this->getIDatabaseMock();
|
||||
$database = $this->getDBConnRefMock();
|
||||
$lb = $this->getLoadBalancerMock();
|
||||
|
||||
$lb->expects( $this->once() )
|
||||
|
|
|
|||
|
|
@ -9,11 +9,11 @@ use MediaWiki\User\UserNamePrefixSearch;
|
|||
use MediaWiki\User\UserNameUtils;
|
||||
use MediaWikiUnitTestCase;
|
||||
use User;
|
||||
use Wikimedia\Rdbms\Database;
|
||||
use Wikimedia\Rdbms\DBConnRef;
|
||||
use Wikimedia\Rdbms\LoadBalancer;
|
||||
|
||||
/**
|
||||
* @covers MediaWiki\User\UserNamePrefixSearch
|
||||
* @covers \MediaWiki\User\UserNamePrefixSearch
|
||||
* @author DannyS712
|
||||
*/
|
||||
class UserNamePrefixSearchTest extends MediaWikiUnitTestCase {
|
||||
|
|
@ -51,7 +51,7 @@ class UserNamePrefixSearchTest extends MediaWikiUnitTestCase {
|
|||
->willReturn( $hasHideuser );
|
||||
}
|
||||
|
||||
$database = $this->createMock( Database::class );
|
||||
$database = $this->createMock( DBConnRef::class );
|
||||
$database->expects( $this->once() )
|
||||
->method( 'anyString' )
|
||||
->willReturn( 'anyStringGoesHere' );
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
use MediaWiki\Revision\RevisionRecord;
|
||||
use MediaWiki\User\UserIdentityValue;
|
||||
use PHPUnit\Framework\MockObject\MockObject;
|
||||
use Wikimedia\Rdbms\DBConnRef;
|
||||
use Wikimedia\Rdbms\IDatabase;
|
||||
use Wikimedia\Rdbms\LoadBalancer;
|
||||
use Wikimedia\TestingAccessWrapper;
|
||||
|
|
@ -13,7 +14,7 @@ use Wikimedia\TestingAccessWrapper;
|
|||
class WatchedItemQueryServiceUnitTest extends MediaWikiUnitTestCase {
|
||||
|
||||
/**
|
||||
* @return MockObject|CommentStore
|
||||
* @return MockObject&CommentStore
|
||||
*/
|
||||
private function getMockCommentStore() {
|
||||
$mockStore = $this->createMock( CommentStore::class );
|
||||
|
|
@ -29,10 +30,10 @@ class WatchedItemQueryServiceUnitTest extends MediaWikiUnitTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* @param IDatabase $mockDb
|
||||
* @param DBConnRef $mockDb
|
||||
* @return WatchedItemQueryService
|
||||
*/
|
||||
private function newService( $mockDb ) {
|
||||
private function newService( DBConnRef $mockDb ) {
|
||||
return new WatchedItemQueryService(
|
||||
$this->getMockLoadBalancer( $mockDb ),
|
||||
$this->getMockCommentStore(),
|
||||
|
|
@ -43,17 +44,17 @@ class WatchedItemQueryServiceUnitTest extends MediaWikiUnitTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* @return MockObject|IDatabase
|
||||
* @return MockObject&DBConnRef
|
||||
*/
|
||||
private function getMockDb() {
|
||||
$mock = $this->createMock( IDatabase::class );
|
||||
$mock = $this->createMock( DBConnRef::class );
|
||||
|
||||
$mock->method( 'makeList' )
|
||||
->with(
|
||||
$this->isType( 'array' ),
|
||||
$this->isType( 'int' )
|
||||
)
|
||||
->will( $this->returnCallback( static function ( $a, $conj ) {
|
||||
->willReturnCallback( static function ( $a, $conj ) {
|
||||
$sqlConj = $conj === LIST_AND ? ' AND ' : ' OR ';
|
||||
$conds = [];
|
||||
foreach ( $a as $k => $v ) {
|
||||
|
|
@ -66,7 +67,7 @@ class WatchedItemQueryServiceUnitTest extends MediaWikiUnitTestCase {
|
|||
}
|
||||
}
|
||||
return implode( $sqlConj, $conds );
|
||||
} ) );
|
||||
} );
|
||||
|
||||
$mock->method( 'addQuotes' )
|
||||
->will( $this->returnCallback( static function ( $value ) {
|
||||
|
|
@ -85,10 +86,10 @@ class WatchedItemQueryServiceUnitTest extends MediaWikiUnitTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* @param IDatabase $mockDb
|
||||
* @param DBConnRef $mockDb
|
||||
* @return LoadBalancer
|
||||
*/
|
||||
private function getMockLoadBalancer( $mockDb ) {
|
||||
private function getMockLoadBalancer( DBConnRef $mockDb ) {
|
||||
$mock = $this->createMock( LoadBalancer::class );
|
||||
$mock->method( 'getConnectionRef' )
|
||||
->with( DB_REPLICA )
|
||||
|
|
|
|||
|
|
@ -11,9 +11,9 @@ use MediaWiki\User\UserFactory;
|
|||
use MediaWiki\User\UserIdentity;
|
||||
use MediaWiki\User\UserIdentityValue;
|
||||
use PHPUnit\Framework\MockObject\MockObject;
|
||||
use Wikimedia\Rdbms\IDatabase;
|
||||
use Wikimedia\Rdbms\DBConnRef;
|
||||
use Wikimedia\Rdbms\ILoadBalancer;
|
||||
use Wikimedia\Rdbms\LBFactory;
|
||||
use Wikimedia\Rdbms\LoadBalancer;
|
||||
use Wikimedia\TestingAccessWrapper;
|
||||
|
||||
/**
|
||||
|
|
@ -27,22 +27,22 @@ class WatchedItemStoreUnitTest extends MediaWikiUnitTestCase {
|
|||
use MockTitleTrait;
|
||||
|
||||
/**
|
||||
* @return MockObject|IDatabase
|
||||
* @return MockObject&DBConnRef
|
||||
*/
|
||||
private function getMockDb() {
|
||||
return $this->createMock( IDatabase::class );
|
||||
return $this->createMock( DBConnRef::class );
|
||||
}
|
||||
|
||||
/**
|
||||
* @param IDatabase $mockDb
|
||||
* @param DBConnRef $mockDb
|
||||
* @param string|null $expectedConnectionType
|
||||
* @return MockObject|LoadBalancer
|
||||
* @return MockObject&ILoadBalancer
|
||||
*/
|
||||
private function getMockLoadBalancer(
|
||||
$mockDb,
|
||||
DBConnRef $mockDb,
|
||||
$expectedConnectionType = null
|
||||
) {
|
||||
$mock = $this->createMock( LoadBalancer::class );
|
||||
$mock = $this->createMock( ILoadBalancer::class );
|
||||
if ( $expectedConnectionType !== null ) {
|
||||
$mock->method( 'getConnectionRef' )
|
||||
->with( $expectedConnectionType )
|
||||
|
|
@ -55,12 +55,12 @@ class WatchedItemStoreUnitTest extends MediaWikiUnitTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* @param IDatabase $mockDb
|
||||
* @param DBConnRef $mockDb
|
||||
* @param string|null $expectedConnectionType
|
||||
* @return MockObject|LBFactory
|
||||
* @return MockObject&LBFactory
|
||||
*/
|
||||
private function getMockLBFactory(
|
||||
$mockDb,
|
||||
DBConnRef $mockDb,
|
||||
$expectedConnectionType = null
|
||||
) {
|
||||
$loadBalancer = $this->getMockLoadBalancer( $mockDb, $expectedConnectionType );
|
||||
|
|
@ -136,10 +136,10 @@ class WatchedItemStoreUnitTest extends MediaWikiUnitTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* @param IDatabase $mockDb
|
||||
* @param DBConnRef $mockDb
|
||||
* @return LinkBatchFactory
|
||||
*/
|
||||
private function getMockLinkBatchFactory( $mockDb ) {
|
||||
private function getMockLinkBatchFactory( DBConnRef $mockDb ) {
|
||||
return new LinkBatchFactory(
|
||||
$this->createMock( LinkCache::class ),
|
||||
$this->createMock( TitleFormatter::class ),
|
||||
|
|
@ -2220,7 +2220,7 @@ class WatchedItemStoreUnitTest extends MediaWikiUnitTestCase {
|
|||
new WatchedItem( $user, $targets[0], '20151212010101' ),
|
||||
new WatchedItem( $user, $targets[1], null ),
|
||||
];
|
||||
$mockDb = $this->createNoOpMock( IDatabase::class );
|
||||
$mockDb = $this->createNoOpMock( DBConnRef::class );
|
||||
|
||||
$mockCache = $this->getMockCache();
|
||||
$mockCache->expects( $this->at( 1 ) )
|
||||
|
|
@ -2254,7 +2254,7 @@ class WatchedItemStoreUnitTest extends MediaWikiUnitTestCase {
|
|||
$testPageFactory( 101, 1, 'AnotherDbKey' ),
|
||||
];
|
||||
|
||||
$mockDb = $this->createNoOpMock( IDatabase::class );
|
||||
$mockDb = $this->createNoOpMock( DBConnRef::class );
|
||||
|
||||
$mockCache = $this->createNoOpMock( HashBagOStuff::class );
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue