@@ -27,6 +27,31 @@ public function testSetupMysqli()
2727 $ this ->assertEquals (self ::TEST_DB_NAME , $ settings ->getName ());
2828 }
2929
30+ public function testInitializeMysqli ()
31+ {
32+ if (!extension_loaded ('mysqli ' )) {
33+ $ this ->markTestSkipped (
34+ 'The MySQLi extension is not available. '
35+ );
36+ }
37+
38+ $ settings = Config::initialize ('mysqli ' , [self ::TEST_DB_USER , self ::TEST_DB_PASSWORD , self ::TEST_DB_NAME ]);
39+ $ this ->assertTrue ($ settings instanceof ConfigInterface);
40+ }
41+
42+ public function testErrorMysqli ()
43+ {
44+ if (!extension_loaded ('mysqli ' )) {
45+ $ this ->markTestSkipped (
46+ 'The MySQLi extension is not available. '
47+ );
48+ }
49+
50+ $ this ->expectException (\Exception::class);
51+ $ this ->expectExceptionMessageRegExp ('/[Missing configuration details to connect to database]/ ' );
52+ $ settings = Config::initialize ('mysqli ' , [self ::TEST_DB_USER , self ::TEST_DB_PASSWORD ]);
53+ }
54+
3055 /**
3156 * @covers ezsql\Config::SetupPdo
3257 */
@@ -38,6 +63,19 @@ public function testSetupPdo()
3863 );
3964 }
4065
66+ $ dsn = 'mysql:host= ' .self ::TEST_DB_HOST .';dbname= ' . self ::TEST_DB_NAME .';port=3306 ' ;
67+ $ settings = new Config ('pdo ' , [$ dsn , self ::TEST_DB_USER , self ::TEST_DB_PASSWORD ]);
68+ $ this ->assertTrue ($ settings instanceof ConfigAbstract);
69+ }
70+
71+ public function testInitializePdo ()
72+ {
73+ if ( ! \class_exists ('PDO ' ) ) {
74+ $ this ->markTestSkipped (
75+ 'The PDO Lib is not available. '
76+ );
77+ }
78+
4179 $ dsn = 'mysql:host= ' .self ::TEST_DB_HOST .';dbname= ' . self ::TEST_DB_NAME .';port=3306 ' ;
4280 $ settings = Config::initialize ('pdo ' , [$ dsn , self ::TEST_DB_USER , self ::TEST_DB_PASSWORD ]);
4381 $ this ->assertTrue ($ settings instanceof ConfigAbstract);
@@ -46,6 +84,35 @@ public function testSetupPdo()
4684 $ this ->assertEquals (self ::TEST_DB_PASSWORD , $ settings ->getPassword ());
4785 }
4886
87+ public function testErrorPdo ()
88+ {
89+ if ( ! \class_exists ('PDO ' ) ) {
90+ $ this ->markTestSkipped (
91+ 'The PDO Lib is not available. '
92+ );
93+ }
94+
95+ $ dsn = 'mysql:host= ' .self ::TEST_DB_HOST .';dbname= ' . self ::TEST_DB_NAME .';port=3306 ' ;
96+ $ this ->expectException (\Exception::class);
97+ $ this ->expectExceptionMessageRegExp ('/[Missing configuration details to connect to database]/ ' );
98+ $ settings = Config::initialize ('pdo ' , [$ dsn ]);
99+ }
100+
101+ public function test__callPdo ()
102+ {
103+ if ( ! \class_exists ('PDO ' ) ) {
104+ $ this ->markTestSkipped (
105+ 'The PDO Lib is not available. '
106+ );
107+ }
108+
109+ $ dsn = 'mysql:host= ' .self ::TEST_DB_HOST .';dbname= ' . self ::TEST_DB_NAME .';port=3306 ' ;
110+ $ this ->expectException (\Exception::class);
111+ $ this ->expectExceptionMessageRegExp ('/[does not exist]/ ' );
112+ $ settings = new Config ('pdo ' , [$ dsn , self ::TEST_DB_USER , self ::TEST_DB_PASSWORD ]);
113+ $ settings ->getNotAnProperty ();
114+ }
115+
49116 /**
50117 * @covers ezsql\Config::SetupPgsql
51118 */
@@ -66,6 +133,31 @@ public function testSetupPgsql()
66133 $ this ->assertEquals (self ::TEST_DB_PORT , $ settings ->getPort ());
67134 }
68135
136+ public function testInitializePgsql ()
137+ {
138+ if (!extension_loaded ('pgsql ' )) {
139+ $ this ->markTestSkipped (
140+ 'The PostgreSQL Lib is not available. '
141+ );
142+ }
143+
144+ $ settings = Config::initialize ('pgsql ' , [self ::TEST_DB_USER , self ::TEST_DB_PASSWORD , self ::TEST_DB_NAME , self ::TEST_DB_HOST , self ::TEST_DB_PORT ]);
145+ $ this ->assertTrue ($ settings instanceof ConfigInterface);
146+ }
147+
148+ public function testErrorPgsql ()
149+ {
150+ if (!extension_loaded ('pgsql ' )) {
151+ $ this ->markTestSkipped (
152+ 'The PostgreSQL Lib is not available. '
153+ );
154+ }
155+
156+ $ this ->expectException (\Exception::class);
157+ $ this ->expectExceptionMessageRegExp ('/[Missing configuration details to connect to database]/ ' );
158+ $ settings = Config::initialize ('pgsql ' , [self ::TEST_DB_USER , self ::TEST_DB_PASSWORD ]);
159+ }
160+
69161 /**
70162 * @covers ezsql\Config::SetupSqlsrv
71163 */
@@ -84,6 +176,31 @@ public function testSetupSqlsrv()
84176 $ this ->assertEquals (self ::TEST_DB_NAME , $ settings ->getName ());
85177 }
86178
179+ public function testInitializeSqlsrv ()
180+ {
181+ if (!extension_loaded ('sqlsrv ' )) {
182+ $ this ->markTestSkipped (
183+ 'The sqlsrv Lib is not available. '
184+ );
185+ }
186+
187+ $ settings = Config::initialize ('sqlsrv ' , [self ::TEST_DB_USER , self ::TEST_DB_PASSWORD , self ::TEST_DB_NAME ]);
188+ $ this ->assertTrue ($ settings instanceof ConfigAbstract);
189+ }
190+
191+ public function testErrorSqlsrv ()
192+ {
193+ if (!extension_loaded ('sqlsrv ' )) {
194+ $ this ->markTestSkipped (
195+ 'The sqlsrv Lib is not available. '
196+ );
197+ }
198+
199+ $ this ->expectException (\Exception::class);
200+ $ this ->expectExceptionMessageRegExp ('/[Missing configuration details to connect to database]/ ' );
201+ $ settings = new Config ('sqlsrv ' , [self ::TEST_DB_USER , self ::TEST_DB_PASSWORD ]);
202+ }
203+
87204 /**
88205 * @covers ezsql\Config::SetupSqlite3
89206 */
@@ -100,6 +217,31 @@ public function testSetupSqlite3()
100217 $ this ->assertEquals (self ::TEST_SQLITE_DB_DIR , $ settings ->getPath ());
101218 $ this ->assertEquals (self ::TEST_SQLITE_DB , $ settings ->getName ());
102219 }
220+
221+ public function testInitializeSqlite3 ()
222+ {
223+ if (!extension_loaded ('sqlite3 ' )) {
224+ $ this ->markTestSkipped (
225+ 'The sqlite3 Lib is not available. '
226+ );
227+ }
228+
229+ $ settings = Config::initialize ('sqlite3 ' , [self ::TEST_SQLITE_DB_DIR , self ::TEST_SQLITE_DB ]);
230+ $ this ->assertTrue ($ settings instanceof ConfigInterface);
231+ }
232+
233+ public function testErrorSqlite3 ()
234+ {
235+ if (!extension_loaded ('sqlite3 ' )) {
236+ $ this ->markTestSkipped (
237+ 'The sqlite3 Lib is not available. '
238+ );
239+ }
240+
241+ $ this ->expectException (\Exception::class);
242+ $ this ->expectExceptionMessageRegExp ('/[Missing configuration details to connect to database]/ ' );
243+ $ settings = new Config ('sqlite3 ' , [self ::TEST_SQLITE_DB_DIR ]);
244+ }
103245
104246 /**
105247 * @covers ezsql\Config::__construct
0 commit comments