. */ namespace SP\Tests\Services\Install; use SP\Storage\Database\DatabaseConnectionData; use SP\Storage\Database\MySQLHandler; /** * Trait DbTestUtilTrait * * @package SP\Tests\Services\Install */ trait DbTestUtilTrait { /** * @param $database * * @throws \SP\Storage\Database\DatabaseException */ private function createDatabase($database) { $this->getConnection() ->query(sprintf('CREATE DATABASE `%s`', $database)); } /** * @return \PDO * @throws \SP\Storage\Database\DatabaseException */ private function getConnection() { $data = (new DatabaseConnectionData()) ->setDbHost('syspass-db') ->setDbUser('root') ->setDbPass('syspass'); return (new MySQLHandler($data))->getConnectionSimple(); } /** * @param $user * @param $pass * @param $database * * @throws \SP\Storage\Database\DatabaseException */ private function createUser($user, $pass, $database) { $this->getConnection() ->query(sprintf('GRANT ALL PRIVILEGES ON `%s`.* TO \'%s\'@\'%s\' IDENTIFIED BY \'%s\'', $database, $user, SELF_IP_ADDRESS, $pass)); } /** * @param $user * @param $host * * @throws \SP\Storage\Database\DatabaseException */ private function dropUser($user, $host) { $this->getConnection() ->query(sprintf('DROP USER \'%s\'@\'%s\'', $user, $host)); } /** * @param $database * * @throws \SP\Storage\Database\DatabaseException */ private function dropDatabase($database) { $this->getConnection() ->query(sprintf('DROP DATABASE IF EXISTS `%s`', $database)); } }