php-censor/tests/B8Framework/DatabaseGenerationTest.php
2016-06-23 21:21:57 +06:00

75 lines
2.6 KiB
PHP

<?php
namespace Tests\b8;
use b8\Database\Generator, b8\Database\Map, b8\Database;
class DatabaseGenerationTest extends \PHPUnit_Framework_TestCase
{
protected $_host = 'localhost';
protected $_user = 'b8_test';
protected $_pass = 'b8_test';
protected $_name = 'b8_test';
protected $_db;
public function setUp()
{
Database::setDetails($this->_name, $this->_user, $this->_pass);
Database::setWriteServers([$this->_host]);
$this->_db = Database::getConnection('write');
$this->_db->query('DROP TABLE IF EXISTS tres');
$this->_db->query('DROP TABLE IF EXISTS dos');
$this->_db->query('DROP TABLE IF EXISTS uno');
}
public function testCreateDatabase()
{
$gen = new Generator($this->_db, 'Test', __DIR__ . '/data/generation/models/');
$gen->generate();
$map = new Map($this->_db);
$t = $map->generate();
$this->assertTrue(array_key_exists('uno', $t));
$this->assertTrue(array_key_exists('dos', $t));
$this->assertTrue(array_key_exists('tres', $t));
$this->assertFalse(array_key_exists('bad_table', $t));
$this->assertTrue(count($t['uno']['indexes']) == 1);
$this->assertTrue(count($t['dos']['indexes']) == 3);
$this->assertTrue(count($t['tres']['indexes']) == 2);
$this->assertTrue(count($t['uno']['columns']) == 11);
$this->assertTrue(count($t['dos']['columns']) == 4);
$this->assertTrue(count($t['tres']['columns']) == 6);
$this->assertTrue(array_key_exists('PRIMARY', $t['uno']['indexes']));
$this->assertTrue(array_key_exists('PRIMARY', $t['dos']['indexes']));
$this->assertFalse(array_key_exists('PRIMARY', $t['tres']['indexes']));
}
public function testUpdateDatabase()
{
$gen = new Generator($this->_db, 'Test', __DIR__ . '/data/generation/models/');
$gen->generate();
$gen = new Generator($this->_db, 'Update', __DIR__ . '/data/generation/update_models/');
$gen->generate();
$map = new Map($this->_db);
$t = $map->generate();
$this->assertTrue(array_key_exists('uno', $t));
$this->assertTrue(array_key_exists('dos', $t));
$this->assertTrue(array_key_exists('tres', $t));
$this->assertFalse(array_key_exists('bad_table', $t));
$this->assertTrue(count($t['uno']['indexes']) == 1);
$this->assertTrue(count($t['dos']['indexes']) == 3);
$this->assertTrue(count($t['tres']['indexes']) == 3);
$this->assertTrue(count($t['uno']['columns']) == 10);
$this->assertTrue(count($t['dos']['columns']) == 4);
$this->assertTrue(count($t['tres']['columns']) == 10);
$this->assertTrue(array_key_exists('PRIMARY', $t['uno']['indexes']));
$this->assertTrue(array_key_exists('PRIMARY', $t['dos']['indexes']));
$this->assertTrue(array_key_exists('PRIMARY', $t['tres']['indexes']));
}
}