Passed
Push — master ( d1f5f8...1bb3e8 )
by Jean-Christophe
02:28
created

DatabaseTest::testPrepareStatement()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
cc 1
eloc 2
c 1
b 0
f 1
nc 1
nop 0
dl 0
loc 5
rs 10
1
<?php
2
use Ubiquity\db\Database;
3
4
require_once 'Ubiquity/db/Database.php';
5
6
/**
7
 * Database test case.
8
 */
9
class DatabaseTest extends \Codeception\Test\Unit {
10
11
	/**
12
	 *
13
	 * @var Database
14
	 */
15
	private $database;
16
	private $db_server;
17
	const DB_NAME = "messagerie";
18
19
	/**
20
	 * Prepares the environment before running a test.
21
	 */
22
	protected function _before() {
23
		$this->db_server = getenv ( 'SERVICE_MYSQL_IP' ) ?? '127.0.0.1';
24
		$this->database = new Database ( "mysql", self::DB_NAME, $this->db_server );
25
	}
26
27
	/**
28
	 * Cleans up the environment after running a test.
29
	 */
30
	protected function _after() {
31
		$this->database = null;
32
	}
33
34
	protected function beforeQuery() {
35
		if (! $this->database->isConnected ())
36
			$this->database->connect ();
37
	}
38
39
	/**
40
	 * Tests Database->__construct()
41
	 */
42
	public function test__construct() {
43
		$this->assertEquals ( self::DB_NAME, $this->database->getDbName () );
44
		$this->assertEquals ( '3306', $this->database->getPort () );
45
	}
46
47
	/**
48
	 * Tests Database->connect()
49
	 */
50
	public function testConnect() {
51
		$this->assertTrue ( $this->database->connect () );
52
	}
53
54
	/**
55
	 * Tests Database->getDSN()
56
	 */
57
	public function testGetDSN() {
58
		$db = new Database ( "mysql", "dbname" );
59
		$dsn = $db->getDSN ();
60
		$this->assertEquals ( 'mysql:dbname=dbname;host=127.0.0.1;charset=UTF8;port=3306', $dsn );
61
		$db->setDbType ( "mongo" );
62
		$this->assertEquals ( 'mongo:dbname=dbname;host=127.0.0.1;charset=UTF8;port=3306', $db->getDSN () );
63
		$db->setServerName ( "localhost" );
64
		$this->assertEquals ( 'mongo:dbname=dbname;host=localhost;charset=UTF8;port=3306', $db->getDSN () );
65
		$db->setPort ( 23 );
66
		$this->assertEquals ( 'mongo:dbname=dbname;host=localhost;charset=UTF8;port=23', $db->getDSN () );
67
	}
68
69
	/**
70
	 * Tests Database->query()
71
	 */
72
	public function testQuery() {
73
		$this->beforeQuery ();
74
		$this->assertNotFalse ( $this->database->query ( "SELECT 1" ) );
1 ignored issue
show
Bug introduced by
$this->database->query('SELECT 1') of type PDOStatement is incompatible with the type boolean expected by parameter $condition of PHPUnit\Framework\Assert::assertNotFalse(). ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

74
		$this->assertNotFalse ( /** @scrutinizer ignore-type */ $this->database->query ( "SELECT 1" ) );
Loading history...
75
	}
76
77
	/**
78
	 * Tests Database->prepareAndExecute()
79
	 */
80
	public function testPrepareAndExecute() {
81
		$this->beforeQuery ();
82
		$response = $this->database->prepareAndExecute ( "user", "WHERE `email`='[email protected]'", [ "email","firstname" ] );
83
		$this->assertEquals ( sizeof ( $response ), 1 );
84
		$row = current ( $response );
85
		$this->assertEquals ( "[email protected]", $row ['email'] );
86
		$this->assertEquals ( "Benjamin", $row ['firstname'] );
87
		$this->assertArrayNotHasKey ( 'lastname', $row );
88
	}
89
90
	/**
91
	 * Tests Database->prepareAndFetchAll()
92
	 */
93
	public function testPrepareAndFetchAll() {
94
		$this->beforeQuery ();
95
		$this->assertNotFalse ( $this->database->prepareAndFetchAll ( "SELECT 1" ) );
1 ignored issue
show
Bug introduced by
It seems like $this->database->prepareAndFetchAll('SELECT 1') can also be of type array; however, parameter $condition of PHPUnit\Framework\Assert::assertNotFalse() does only seem to accept boolean, maybe add an additional type check? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

95
		$this->assertNotFalse ( /** @scrutinizer ignore-type */ $this->database->prepareAndFetchAll ( "SELECT 1" ) );
Loading history...
96
		$resp = $this->database->prepareAndFetchAll ( "select * from `user`" );
97
		$this->assertEquals ( 101, sizeof ( $resp ) );
98
	}
99
100
	/**
101
	 * Tests Database->prepareAndFetchAllColumn()
102
	 */
103
	public function testPrepareAndFetchAllColumn() {
104
		// TODO Auto-generated DatabaseTest->testPrepareAndFetchAllColumn()
105
		$this->markTestIncomplete ( "prepareAndFetchAllColumn test not implemented" );
106
107
		$this->database->prepareAndFetchAllColumn(/* parameters */);
108
	}
109
110
	/**
111
	 * Tests Database->prepareAndFetchColumn()
112
	 */
113
	public function testPrepareAndFetchColumn() {
114
		// TODO Auto-generated DatabaseTest->testPrepareAndFetchColumn()
115
		$this->markTestIncomplete ( "prepareAndFetchColumn test not implemented" );
116
117
		$this->database->prepareAndFetchColumn(/* parameters */);
118
	}
119
120
	/**
121
	 * Tests Database->execute()
122
	 */
123
	public function testExecute() {
124
		// TODO Auto-generated DatabaseTest->testExecute()
125
		$this->markTestIncomplete ( "execute test not implemented" );
126
127
		$this->database->execute(/* parameters */);
128
	}
129
130
	/**
131
	 * Tests Database->getServerName()
132
	 */
133
	public function testGetServerName() {
134
		// TODO Auto-generated DatabaseTest->testGetServerName()
135
		$this->markTestIncomplete ( "getServerName test not implemented" );
136
137
		$this->database->getServerName(/* parameters */);
138
	}
139
140
	/**
141
	 * Tests Database->setServerName()
142
	 */
143
	public function testSetServerName() {
144
		// TODO Auto-generated DatabaseTest->testSetServerName()
145
		$this->markTestIncomplete ( "setServerName test not implemented" );
146
147
		$this->database->setServerName(/* parameters */);
148
	}
149
150
	/**
151
	 * Tests Database->prepareStatement()
152
	 */
153
	public function testPrepareStatement() {
154
		// TODO Auto-generated DatabaseTest->testPrepareStatement()
155
		$this->markTestIncomplete ( "prepareStatement test not implemented" );
156
157
		$this->database->prepareStatement(/* parameters */);
158
	}
159
160
	/**
161
	 * Tests Database->bindValueFromStatement()
162
	 */
163
	public function testBindValueFromStatement() {
164
		// TODO Auto-generated DatabaseTest->testBindValueFromStatement()
165
		$this->markTestIncomplete ( "bindValueFromStatement test not implemented" );
166
167
		$this->database->bindValueFromStatement(/* parameters */);
168
	}
169
170
	/**
171
	 * Tests Database->lastInserId()
172
	 */
173
	public function testLastInserId() {
174
		// TODO Auto-generated DatabaseTest->testLastInserId()
175
		$this->markTestIncomplete ( "lastInserId test not implemented" );
176
177
		$this->database->lastInserId(/* parameters */);
178
	}
179
180
	/**
181
	 * Tests Database->getTablesName()
182
	 */
183
	public function testGetTablesName() {
184
		// TODO Auto-generated DatabaseTest->testGetTablesName()
185
		$this->markTestIncomplete ( "getTablesName test not implemented" );
186
187
		$this->database->getTablesName(/* parameters */);
188
	}
189
190
	/**
191
	 * Tests Database->count()
192
	 */
193
	public function testCount() {
194
		// TODO Auto-generated DatabaseTest->testCount()
195
		$this->markTestIncomplete ( "count test not implemented" );
196
197
		$this->database->count(/* parameters */);
198
	}
199
200
	/**
201
	 * Tests Database->queryColumn()
202
	 */
203
	public function testQueryColumn() {
204
		// TODO Auto-generated DatabaseTest->testQueryColumn()
205
		$this->markTestIncomplete ( "queryColumn test not implemented" );
206
207
		$this->database->queryColumn(/* parameters */);
208
	}
209
210
	/**
211
	 * Tests Database->fetchAll()
212
	 */
213
	public function testFetchAll() {
214
		// TODO Auto-generated DatabaseTest->testFetchAll()
215
		$this->markTestIncomplete ( "fetchAll test not implemented" );
216
217
		$this->database->fetchAll(/* parameters */);
218
	}
219
220
	/**
221
	 * Tests Database->isConnected()
222
	 */
223
	public function testIsConnected() {
224
		// TODO Auto-generated DatabaseTest->testIsConnected()
225
		$this->markTestIncomplete ( "isConnected test not implemented" );
226
227
		$this->database->isConnected(/* parameters */);
228
	}
229
230
	/**
231
	 * Tests Database->setDbType()
232
	 */
233
	public function testSetDbType() {
234
		// TODO Auto-generated DatabaseTest->testSetDbType()
235
		$this->markTestIncomplete ( "setDbType test not implemented" );
236
237
		$this->database->setDbType(/* parameters */);
238
	}
239
240
	/**
241
	 * Tests Database->ping()
242
	 */
243
	public function testPing() {
244
		// TODO Auto-generated DatabaseTest->testPing()
245
		$this->markTestIncomplete ( "ping test not implemented" );
246
247
		$this->database->ping(/* parameters */);
248
	}
249
250
	/**
251
	 * Tests Database->getPort()
252
	 */
253
	public function testGetPort() {
254
		// TODO Auto-generated DatabaseTest->testGetPort()
255
		$this->markTestIncomplete ( "getPort test not implemented" );
256
257
		$this->database->getPort(/* parameters */);
258
	}
259
260
	/**
261
	 * Tests Database->getDbName()
262
	 */
263
	public function testGetDbName() {
264
		// TODO Auto-generated DatabaseTest->testGetDbName()
265
		$this->markTestIncomplete ( "getDbName test not implemented" );
266
267
		$this->database->getDbName(/* parameters */);
268
	}
269
270
	/**
271
	 * Tests Database->getUser()
272
	 */
273
	public function testGetUser() {
274
		// TODO Auto-generated DatabaseTest->testGetUser()
275
		$this->markTestIncomplete ( "getUser test not implemented" );
276
277
		$this->database->getUser(/* parameters */);
278
	}
279
280
	/**
281
	 * Tests Database->getPdoObject()
282
	 */
283
	public function testGetPdoObject() {
284
		// TODO Auto-generated DatabaseTest->testGetPdoObject()
285
		$this->markTestIncomplete ( "getPdoObject test not implemented" );
286
287
		$this->database->getPdoObject(/* parameters */);
288
	}
289
290
	/**
291
	 * Tests Database::getAvailableDrivers()
292
	 */
293
	public function testGetAvailableDrivers() {
294
		// TODO Auto-generated DatabaseTest::testGetAvailableDrivers()
295
		$this->markTestIncomplete ( "getAvailableDrivers test not implemented" );
296
297
		Database::getAvailableDrivers(/* parameters */);
298
	}
299
}
300
301