markTestSkipped( 'The Mysql extension is not available.' ); } } /** * @testdox Valid mysql connection data result in a valid database connection * @covers phpOMS\DataStorage\Database\Connection\MysqlConnection * @group framework */ public function testConnect() : void { $mysql = new MysqlConnection($GLOBALS['CONFIG']['db']['core']['masters']['admin']); self::assertEquals(DatabaseStatus::OK, $mysql->getStatus()); self::assertEquals($GLOBALS['CONFIG']['db']['core']['masters']['admin']['database'], $mysql->getDatabase()); self::assertEquals($GLOBALS['CONFIG']['db']['core']['masters']['admin']['host'], $mysql->getHost()); self::assertEquals((int) $GLOBALS['CONFIG']['db']['core']['masters']['admin']['port'], $mysql->getPort()); self::assertInstanceOf('\phpOMS\DataStorage\Database\Query\Grammar\MysqlGrammar', $mysql->getGrammar()); self::assertEquals(DatabaseType::MYSQL, $mysql->getType()); } /** * @testdox A missing database type throws a InvalidConnectionConfigException * @covers phpOMS\DataStorage\Database\Connection\MysqlConnection * @group framework */ public function testInvalidDatabaseType() : void { self::expectException(\phpOMS\DataStorage\Database\Exception\InvalidConnectionConfigException::class); $db = $GLOBALS['CONFIG']['db']['core']['masters']['admin']; unset($db['db']); $mysql = new MysqlConnection($db); } /** * @testdox A missing database host throws a InvalidConnectionConfigException * @covers phpOMS\DataStorage\Database\Connection\MysqlConnection * @group framework */ public function testInvalidHost() : void { self::expectException(\phpOMS\DataStorage\Database\Exception\InvalidConnectionConfigException::class); $db = $GLOBALS['CONFIG']['db']['core']['masters']['admin']; unset($db['host']); $mysql = new MysqlConnection($db); } /** * @testdox A missing database port throws a InvalidConnectionConfigException * @covers phpOMS\DataStorage\Database\Connection\MysqlConnection * @group framework */ public function testInvalidPort() : void { self::expectException(\phpOMS\DataStorage\Database\Exception\InvalidConnectionConfigException::class); $db = $GLOBALS['CONFIG']['db']['core']['masters']['admin']; unset($db['port']); $mysql = new MysqlConnection($db); } /** * @testdox A missing database throws a InvalidConnectionConfigException * @covers phpOMS\DataStorage\Database\Connection\MysqlConnection * @group framework */ public function testInvalidDatabase() : void { self::expectException(\phpOMS\DataStorage\Database\Exception\InvalidConnectionConfigException::class); $db = $GLOBALS['CONFIG']['db']['core']['masters']['admin']; unset($db['database']); $mysql = new MysqlConnection($db); } /** * @testdox A missing database login throws a InvalidConnectionConfigException * @covers phpOMS\DataStorage\Database\Connection\MysqlConnection * @group framework */ public function testInvalidLogin() : void { self::expectException(\phpOMS\DataStorage\Database\Exception\InvalidConnectionConfigException::class); $db = $GLOBALS['CONFIG']['db']['core']['masters']['admin']; unset($db['login']); $mysql = new MysqlConnection($db); } /** * @testdox A missing database password throws a InvalidConnectionConfigException * @covers phpOMS\DataStorage\Database\Connection\MysqlConnection * @group framework */ public function testInvalidPassword() : void { self::expectException(\phpOMS\DataStorage\Database\Exception\InvalidConnectionConfigException::class); $db = $GLOBALS['CONFIG']['db']['core']['masters']['admin']; unset($db['password']); $mysql = new MysqlConnection($db); } /** * @testdox A invalid database type throws a InvalidConnectionConfigException * @covers phpOMS\DataStorage\Database\Connection\MysqlConnection * @group framework */ public function testInvalidDatabaseTypeName() : void { self::expectException(\phpOMS\DataStorage\Database\Exception\InvalidConnectionConfigException::class); $db = $GLOBALS['CONFIG']['db']['core']['masters']['admin']; $db['db'] = 'invalid'; $mysql = new MysqlConnection($db); } /** * @testdox A invalid database throws a InvalidConnectionConfigException * @covers phpOMS\DataStorage\Database\Connection\MysqlConnection * @group framework */ public function testInvalidDatabaseName() : void { self::expectException(\phpOMS\DataStorage\Database\Exception\InvalidConnectionConfigException::class); $db = $GLOBALS['CONFIG']['db']['core']['masters']['admin']; $db['database'] = 'invalid'; $mysql = new MysqlConnection($db); } }