This repository was archived by the owner on Aug 19, 2022. It is now read-only.
-
-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathConnectionTest.php
175 lines (159 loc) · 4.5 KB
/
ConnectionTest.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
<?php
/**
* SQL database management to be used by several providers at the same time.
*
* @author Josantonius <[email protected]>
* @copyright 2017 - 2018 (c) Josantonius - PHP-Database
* @license https://opensource.org/licenses/MIT - The MIT License (MIT)
* @link https://github.com/Josantonius/PHP-Database
* @since 1.1.6
*/
namespace Josantonius\Database;
use PHPUnit\Framework\TestCase;
/**
* Database connection tests.
*/
final class ConnectionTest extends TestCase
{
/**
* Get connection test.
*/
public function testGetConnection()
{
$db = Database::getConnection(
'identifier',
'PDOprovider',
$GLOBALS['DB_HOST'],
$GLOBALS['DB_USER'],
$GLOBALS['DB_NAME'],
$GLOBALS['DB_PASSWORD'],
['charset' => 'utf8']
);
$this->assertContains('identifier', $db::$id);
$this->assertContains(
'Josantonius\Database\Database',
get_class($db)
);
$db = Database::getConnection(
'api',
'PDOprovider',
$GLOBALS['DB_HOST'],
$GLOBALS['DB_USER'],
$GLOBALS['DB_NAME'],
$GLOBALS['DB_PASSWORD'],
['charset' => 'utf8']
);
$this->assertContains('api', $db::$id);
$this->assertContains(
'Josantonius\Database\Database',
get_class($db)
);
}
/**
* Move between multiple connections.
*
* @since 1.1.7
*/
public function testMoveBetweenMultipleConnections()
{
$db = Database::getConnection('identifier');
$this->assertContains('identifier', $db::$id);
$db = Database::getConnection('api');
$this->assertContains('api', $db::$id);
}
/**
* Test when provider not exists.
*
* @expectedException \Josantonius\Database\Exception\DBException
*
* @expectedExceptionMessage The provider doesn't exist: Josantonius\
*/
public function testExceptionWhenProviderNotExists()
{
$db = Database::getConnection(
'provider-exception',
'?',
$GLOBALS['DB_HOST'],
$GLOBALS['DB_USER'],
$GLOBALS['DB_NAME'],
$GLOBALS['DB_PASSWORD'],
['charset' => 'utf8']
);
}
/**
* Test for exception: Name or service not known.
*
* @expectedException \Josantonius\Database\Exception\DBException
*
* @expectedExceptionMessageRegExp (Unknown|MySQL|service|not|known)
*/
public function testExceptionNameOrServiceNotKnown()
{
$db = Database::getConnection(
'connection-exception',
'PDOprovider',
'?',
$GLOBALS['DB_USER'],
$GLOBALS['DB_NAME'],
$GLOBALS['DB_PASSWORD'],
['charset' => 'utf8']
);
}
/**
* Test for exception: Access denied for user.
*
* @expectedException \Josantonius\Database\Exception\DBException
*
* @expectedExceptionMessage Access denied for user
*/
public function testExceptionAccessDeniedForUser()
{
$db = Database::getConnection(
'user-exception',
'PDOprovider',
$GLOBALS['DB_HOST'],
'?',
$GLOBALS['DB_NAME'],
$GLOBALS['DB_PASSWORD'],
['charset' => 'utf8']
);
}
/**
* Test for exception: Access denied for user (password).
*
* @expectedException \Josantonius\Database\Exception\DBException
*
* @expectedExceptionMessage Access denied for user
*/
public function testExceptionAccessDeniedForUserPassword()
{
$db = Database::getConnection(
'password-exception',
'PDOprovider',
$GLOBALS['DB_HOST'],
$GLOBALS['DB_USER'],
$GLOBALS['DB_NAME'],
'?',
['charset' => 'utf8']
);
}
/**
* Test for exception: Access denied for user (name).
*
* @expectedException \Josantonius\Database\Exception\DBException
*
* @expectedExceptionMessageRegExp (Unknown|database|Access|denied|user)
*/
public function testExceptionAccessDeniedForUserName()
{
$db = Database::getConnection(
'name-exception',
'PDOprovider',
$GLOBALS['DB_HOST'],
$GLOBALS['DB_USER'],
'?',
$GLOBALS['DB_PASSWORD'],
['charset' => 'utf8']
);
}
}