Passed
Push — master ( e35b6a...605339 )
by Alaa
48s queued 11s
created

FakeLoadBalancer::rollbackMasterChanges()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 3
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 1
1
<?php
2
3
namespace Wikibase\TermStore\MediaWiki\Tests\Util;
4
5
use InvalidArgumentException;
6
use Wikimedia\Rdbms\IDatabase;
7
use Wikimedia\Rdbms\ILoadBalancer;
8
use Wikimedia\Rdbms\LoadBalancer;
9
10
class FakeLoadBalancer extends LoadBalancer {
11
12
	/** @var IDatabase */
13
	private $dbr;
14
15
	/** @var IDatabase */
16
	private $dbw;
17
18
	/**
19
	 * @param array $params should contain 'dbr' and optionally 'dbw' IDatabase instances
20
	 */
21
	public function __construct( array $params ) {
22
		// no parent constructor call, we only use the LoadBalancer class so we don’t have to
23
		// override every ILoadBalancer method – they’ll just crash if someone tries to use them
24
		$this->dbr = $params['dbr'];
25
		$this->dbw = $params['dbw'] ?? $this->dbr;
26
	}
27
28
	public function getConnection( $i, $groups = [], $domain = false, $flags = 0 ) {
29
		switch ( $i ) {
30
			case ILoadBalancer::DB_REPLICA:
31
				return $this->dbr;
32
			case ILoadBalancer::DB_MASTER:
33
				return $this->dbw;
34
			default:
35
				throw new InvalidArgumentException( 'only DB_REPLICA and DB_MASTER supported' );
36
		}
37
	}
38
39
	public function beginMasterChanges( $fname = __METHOD__ ) {
40
		// no-op
41
	}
42
43
	public function commitMasterChanges( $fname = __METHOD__ ) {
44
		// no-op
45
	}
46
47
	public function rollbackMasterChanges( $fname = __METHOD__ ) {
48
		// no-op
49
	}
50
51
	public function __destruct() {
52
		// no-op
53
	}
54
55
}
56