MediaWiki
REL1_31
SessionConsistentConnectionManagerTest.php
Go to the documentation of this file.
1
<?php
2
3
namespace
Wikimedia\Tests\Rdbms
;
4
5
use
Wikimedia\Rdbms\IDatabase
;
6
use
Wikimedia\Rdbms\LoadBalancer
;
7
use PHPUnit_Framework_MockObject_MockObject;
8
use
Wikimedia\Rdbms\SessionConsistentConnectionManager
;
9
15
class
SessionConsistentConnectionManagerTest
extends
\PHPUnit\Framework\TestCase {
16
20
private
function
getIDatabaseMock
() {
21
return
$this->getMockBuilder( IDatabase::class )
22
->getMock();
23
}
24
28
private
function
getLoadBalancerMock
() {
29
$lb = $this->getMockBuilder( LoadBalancer::class )
30
->disableOriginalConstructor()
31
->getMock();
32
33
return
$lb;
34
}
35
36
public
function
testGetReadConnection
() {
37
$database = $this->
getIDatabaseMock
();
38
$lb = $this->
getLoadBalancerMock
();
39
40
$lb->expects( $this->once() )
41
->method(
'getConnection'
)
42
->with(
DB_REPLICA
)
43
->will( $this->returnValue( $database ) );
44
45
$manager =
new
SessionConsistentConnectionManager
( $lb );
46
$actual = $manager->getReadConnection();
47
48
$this->assertSame( $database, $actual );
49
}
50
51
public
function
testGetReadConnectionReturnsWriteDbOnForceMatser
() {
52
$database = $this->
getIDatabaseMock
();
53
$lb = $this->
getLoadBalancerMock
();
54
55
$lb->expects( $this->once() )
56
->method(
'getConnection'
)
57
->with(
DB_MASTER
)
58
->will( $this->returnValue( $database ) );
59
60
$manager =
new
SessionConsistentConnectionManager
( $lb );
61
$manager->prepareForUpdates();
62
$actual = $manager->getReadConnection();
63
64
$this->assertSame( $database, $actual );
65
}
66
67
public
function
testGetWriteConnection
() {
68
$database = $this->
getIDatabaseMock
();
69
$lb = $this->
getLoadBalancerMock
();
70
71
$lb->expects( $this->once() )
72
->method(
'getConnection'
)
73
->with(
DB_MASTER
)
74
->will( $this->returnValue( $database ) );
75
76
$manager =
new
SessionConsistentConnectionManager
( $lb );
77
$actual = $manager->getWriteConnection();
78
79
$this->assertSame( $database, $actual );
80
}
81
82
public
function
testForceMaster
() {
83
$database = $this->
getIDatabaseMock
();
84
$lb = $this->
getLoadBalancerMock
();
85
86
$lb->expects( $this->once() )
87
->method(
'getConnection'
)
88
->with(
DB_MASTER
)
89
->will( $this->returnValue( $database ) );
90
91
$manager =
new
SessionConsistentConnectionManager
( $lb );
92
$manager->prepareForUpdates();
93
$manager->getReadConnection();
94
}
95
96
public
function
testReleaseConnection
() {
97
$database = $this->
getIDatabaseMock
();
98
$lb = $this->
getLoadBalancerMock
();
99
100
$lb->expects( $this->once() )
101
->method(
'reuseConnection'
)
102
->with( $database )
103
->will( $this->returnValue(
null
) );
104
105
$manager =
new
SessionConsistentConnectionManager
( $lb );
106
$manager->releaseConnection( $database );
107
}
108
}
Wikimedia\Rdbms\LoadBalancer
Database connection, tracking, load balancing, and transaction manager for a cluster.
Definition
LoadBalancer.php:41
Wikimedia\Rdbms\SessionConsistentConnectionManager
Database connection manager.
Definition
SessionConsistentConnectionManager.php:45
Wikimedia\Tests\Rdbms\SessionConsistentConnectionManagerTest
Wikimedia\Rdbms\SessionConsistentConnectionManager.
Definition
SessionConsistentConnectionManagerTest.php:15
Wikimedia\Tests\Rdbms\SessionConsistentConnectionManagerTest\getIDatabaseMock
getIDatabaseMock()
Definition
SessionConsistentConnectionManagerTest.php:20
Wikimedia\Tests\Rdbms\SessionConsistentConnectionManagerTest\testGetReadConnectionReturnsWriteDbOnForceMatser
testGetReadConnectionReturnsWriteDbOnForceMatser()
Definition
SessionConsistentConnectionManagerTest.php:51
Wikimedia\Tests\Rdbms\SessionConsistentConnectionManagerTest\testGetReadConnection
testGetReadConnection()
Definition
SessionConsistentConnectionManagerTest.php:36
Wikimedia\Tests\Rdbms\SessionConsistentConnectionManagerTest\testGetWriteConnection
testGetWriteConnection()
Definition
SessionConsistentConnectionManagerTest.php:67
Wikimedia\Tests\Rdbms\SessionConsistentConnectionManagerTest\getLoadBalancerMock
getLoadBalancerMock()
Definition
SessionConsistentConnectionManagerTest.php:28
Wikimedia\Tests\Rdbms\SessionConsistentConnectionManagerTest\testReleaseConnection
testReleaseConnection()
Definition
SessionConsistentConnectionManagerTest.php:96
Wikimedia\Tests\Rdbms\SessionConsistentConnectionManagerTest\testForceMaster
testForceMaster()
Definition
SessionConsistentConnectionManagerTest.php:82
Wikimedia\Rdbms\IDatabase
Basic database interface for live and lazy-loaded relation database handles.
Definition
IDatabase.php:38
Wikimedia\Tests\Rdbms
Definition
ConnectionManagerTest.php:3
DB_REPLICA
const DB_REPLICA
Definition
defines.php:25
DB_MASTER
const DB_MASTER
Definition
defines.php:29
tests
phpunit
includes
libs
rdbms
connectionmanager
SessionConsistentConnectionManagerTest.php
Generated on Mon Nov 25 2024 15:36:25 for MediaWiki by
1.10.0