Create database connection using configuration then do a test

This commit is contained in:
Gregorio Chiko Putra 2017-08-31 13:21:38 +07:00
parent f56503a4d4
commit 1235bd4148
3 changed files with 93 additions and 0 deletions

11
App/Config.php Normal file
View File

@ -0,0 +1,11 @@
<?php
namespace App;
class Config
{
const
DB_HOST = '127.0.0.1',
DB_DB = 'cfp_test',
DB_UNAME = 'root',
DB_PWD = 'root';
}

64
Core/Model.php Normal file
View File

@ -0,0 +1,64 @@
<?php
namespace Core;
use App\Config;
class Model
{
protected static $dsn;
protected static function connectDB()
{
static $conn = null;
if (!$conn) {
try {
$dsn = 'mysql:host='.Config::DB_HOST.';dbname='.Config::DB_DB;
$conn = new \PDO($dsn, Config::DB_UNAME, Config::DB_PWD);
$conn->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
echo $e->getMessage();
}
}
return $conn;
}
public function createTable()
{
$sql = "CREATE TABLE IF NOT EXISTS pengumuman (
id int(3) NOT NULL AUTO_INCREMENT,
category int(3) NOT NULL,
created_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
expire_at timestamp NOT NULL,
creator int(3) NOT NULL,
edited_at timestamp,
editor int(3),
content varchar(255) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;";
$db = static::connectDB();
$query = $db->prepare($sql);
if ($query->execute()) {
return true;
}
return false;
}
public function dropTable()
{
$sql = "DROP TABLE IF EXISTS pengumuman";
$db = static::connectDB();
$query = $db->prepare($sql);
if ($query->execute()) {
return true;
}
return false;
}
}

18
_tests/unit/ModelTest.php Normal file
View File

@ -0,0 +1,18 @@
<?php
namespace Core;
// use Model;
class ModelTest extends \PHPUnit\Framework\TestCase
{
/**
*
* @test
*/
public function createNewTableWorkSuccess()
{
$model = new Model();
$this->assertTrue($model->createTable());
$this->assertTrue($model->dropTable());
}
}