The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

I'm just writing this because my IDE crashed and I need to stash it.

Example test

<?php

namespace SMW\Tests\Exporter\Controller;

use MediaWiki\MediaWikiServices;
use PHPUnit\Framework\TestCase;


/**
 * @covers \SMW\Exporter\SMWExportController
 * @group semantic-mediawiki
 *
 * @license GPL-2.0-or-later
 * @since 5.0-alpha
 *
 * @author freephile
 */

class SMW_ExportControllerTest extends TestCase {

	public function testGetDBHandle() {
		$mwVersion = MW_VERSION;

		if (version_compare($mwVersion, '1.42', '>=')) {
			$connectionProvider = $this->createMock(\Wikimedia\Rdbms\ConnectionProvider::class);
			$replicaDatabase = $this->createMock(\Wikimedia\Rdbms\IDatabase::class);
			$connectionProvider->method('getReplicaDatabase')->willReturn($replicaDatabase);

			$mediaWikiServices = $this->createMock(MediaWikiServices::class);
			$mediaWikiServices->method('getConnectionProvider')->willReturn($connectionProvider);

			MediaWikiServices::setInstanceForTesting($mediaWikiServices);

			$this->assertSame($replicaDatabase, SMWExportController::getDBHandle());
		} else {
			$dbLoadBalancer = $this->createMock(\Wikimedia\Rdbms\LoadBalancer::class);
			$replicaDatabase = $this->createMock(\Wikimedia\Rdbms\IDatabase::class);
			$dbLoadBalancer->method('getConnection')->with(DB_REPLICA)->willReturn($replicaDatabase);

			$mediaWikiServices = $this->createMock(MediaWikiServices::class);
			$mediaWikiServices->method('getDBLoadBalancer')->willReturn($dbLoadBalancer);

			MediaWikiServices::setInstanceForTesting($mediaWikiServices);

			$this->assertSame($replicaDatabase, SMWExportController::getDBHandle());
		}
	}
}