Пример #1
0
 /**
  * Test SQLite database methods
  * 
  * @requires extension pdo
  */
 public function testMethods()
 {
     $config = array('db' => array('dsn' => DB_DSN, 'user' => DB_USER, 'pass' => DB_PASS));
     $app = new \Duality\App(dirname(__FILE__), $config);
     $db = $app->call('db');
     $table = new Table($db);
     $table->setName('dummy');
     $table->setColumns(array('dummy' => 'integer'));
     $db->AddTable($table);
     $db->getTables();
     $db->getTable('notfound');
     $db->getPDO();
     $entity = new User($db);
     $db->createTableFromEntity($entity);
     $property = new Property('dummy');
     $expected = 'SELECT * FROM dummy;';
     $result = $db->getSelect('*', (string) $table);
     $this->assertEquals($expected, $result);
     $expected = 'SELECT * FROM dummy WHERE dummy = ? LIMIT 10 OFFSET 0;';
     $result = $db->getSelect('*', (string) $table, 'dummy = ?', '', 10, 0);
     $this->assertEquals($expected, $result);
     $expected = 'CREATE TABLE IF NOT EXISTS dummy (id INTEGER PRIMARY KEY, dummy integer);';
     $result = $db->getCreateTable($table, array('id' => 'auto', 'dummy' => 'integer'));
     $this->assertEquals($expected, $result);
     $expected = 'DROP TABLE IF EXISTS dummy;';
     $result = $db->getDropTable($table);
     $this->assertEquals($expected, $result);
     $expected = 'ALTER TABLE dummy ADD COLUMN dummy integer;';
     $result = $db->getAddColumn($table, $property, 'integer');
     $this->assertEquals($expected, $result);
     // $expected = 'ALTER TABLE dummy MODIFY COLUMN dummy integer;';
     // $result = $db->getModifyColumn($table, $property, 'integer');
     // $this->assertEquals($expected, $result);
     $expected = false;
     $result = $db->getModifyColumn($table, $property, 'integer');
     $this->assertEquals($expected, $result);
     $expected = 'INSERT INTO dummy (dummy) VALUES (?);';
     $result = $db->getInsert($table, array('dummy' => 'value'));
     $this->assertEquals($expected, $result);
     $expected = 'UPDATE dummy SET dummy = ? WHERE ' . $table->getPrimaryKey() . ' = ?;';
     $result = $db->getUpdate($table, array('dummy' => 'value'));
     $this->assertEquals($expected, $result);
     $expected = 'DELETE FROM dummy WHERE dummy = ?;';
     $result = $db->getDelete($table, array('dummy' => 'value'));
     $this->assertEquals($expected, $result);
     // $expected = 'DELETE FROM dummy;';
     // $result = $db->getTruncate($table);
     // $this->assertEquals($expected, $result);
     $expected = 'DELETE FROM dummy';
     $result = $db->getTruncate($table);
     $this->assertEquals($expected, $result);
     $expected = false;
     $result = $db->getDropColumn($table, $property);
     $this->assertEquals($expected, $result);
     $db->terminate();
     //
     $this->cleanUp();
 }
Пример #2
0
 /**
  * Test MySql database methods
  * 
  * @requires extension pdo
  */
 public function testMethods()
 {
     $config = array('db' => array('dsn' => DB_DSN, 'user' => DB_USER, 'pass' => DB_PASS));
     $app = $this->getMockBuilder('\\Duality\\App')->setConstructorArgs(array(dirname(__FILE__), $config))->getMock();
     $db = new MySql($app);
     $table = new Table($db);
     $table->setName('dummy');
     $table->setColumns(array('dummy' => 'integer'));
     $property = new Property('dummy');
     $expected = 'SELECT * FROM dummy;';
     $result = $db->getSelect('*', (string) $table);
     $this->assertEquals($expected, $result);
     $expected = 'SELECT * FROM dummy WHERE dummy = ? LIMIT 10 OFFSET 0;';
     $result = $db->getSelect('*', (string) $table, 'dummy = ?', '', 10, 0);
     $this->assertEquals($expected, $result);
     $expected = 'CREATE TABLE IF NOT EXISTS dummy (id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY, dummy integer);';
     $result = $db->getCreateTable($table, array('id' => 'auto', 'dummy' => 'integer'));
     $this->assertEquals($expected, $result);
     $expected = 'DROP TABLE IF EXISTS dummy;';
     $result = $db->getDropTable($table);
     $this->assertEquals($expected, $result);
     $expected = 'ALTER TABLE dummy ADD COLUMN dummy integer;';
     $result = $db->getAddColumn($table, $property, 'integer');
     $this->assertEquals($expected, $result);
     $expected = 'ALTER TABLE dummy DROP COLUMN dummy;';
     $result = $db->getDropColumn($table, $property);
     $this->assertEquals($expected, $result);
     $expected = 'ALTER TABLE dummy MODIFY COLUMN dummy integer;';
     $result = $db->getModifyColumn($table, $property, 'integer');
     $this->assertEquals($expected, $result);
     $expected = 'INSERT INTO dummy (dummy) VALUES (?);';
     $result = $db->getInsert($table, array('dummy' => 'value'));
     $this->assertEquals($expected, $result);
     $expected = 'UPDATE dummy SET dummy = ?;';
     $result = $db->getUpdate($table, array('dummy' => 'value'));
     $this->assertEquals($expected, $result);
     $expected = 'DELETE FROM dummy WHERE dummy = ?;';
     $result = $db->getDelete($table, array('dummy' => 'value'));
     $this->assertEquals($expected, $result);
     $expected = "SELECT COLUMN_NAME, ";
     $expected .= "COLUMN_TYPE FROM INFORMATION_SCHEMA.COLUMNS ";
     $expected .= "WHERE TABLE_SCHEMA = '' ";
     $expected .= "AND TABLE_NAME = 'dummy';";
     $result = $db->getColumns($table, $property);
     $this->assertEquals($expected, $result);
     $expected = 'TRUNCATE dummy;';
     $result = $db->getTruncate($table);
     $this->assertEquals($expected, $result);
     $db->terminate();
 }