<?php
 
require_once dirname(__FILE__).'/DB.php';
 
 
class DBTest extends UnitTestCase{
 
    
 
    private $db;
 
    private $createDbQuery =
 
    '
 
    CREATE DATABASE /*!32312 IF NOT EXISTS*/`pdo_db` /*!40100 DEFAULT CHARACTER SET latin1 */;
 
    USE `pdo_db`;
 
    /*Table structure for table `user` */
 
    DROP TABLE IF EXISTS `user`;
 
    CREATE TABLE `user` (
 
      `id` int(11) NOT NULL auto_increment,
 
      `name` varchar(20) default NULL,
 
      `password` varchar(20) default NULL,
 
      PRIMARY KEY  (`id`)
 
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
 
    ';
 
    
 
    
 
    public function DBTest(){
 
        $this->UnitTestCase('DB Test');
 
        $this->db = new DB();
 
    }
 
    
 
    public function testCreateDb(){
 
        $result = $this->db->query($this->createDbQuery);
 
        $this->db->selectDB('pdo_db');
 
        $this->assertEqual(1,$result);
 
    }
 
    
 
    public function testInsert(){
 
        $data = array('name'=>'testName','password'=>'testPassword');
 
        $table = 'user';
 
        $this->assertEqual(1,$this->db->insert($table,$data));
 
    }
 
    
 
    public function testUpdate(){
 
        $data = array('name'=>'testName1', 'password'=>'testPassword1');
 
        $where = array("id= ".$this->db->getLastInsertId(),"AND name='testName'");
 
        $table = 'user';
 
        $this->assertEqual(1,$this->db->update($table,$data,$where));
 
    }
 
    
 
    public function testInsertQuery(){        
 
        $query = "INSERT INTO `user` SET `name`='testName2', `password`='testPassword2'";
 
        $this->assertTrue($this->db->query($query));
 
    }
 
    
 
    public function testUpdateQuery(){
 
        $query = "UPDATE `user` SET `name`='testName3', `password`='testPassword3' WHERE `id`=2";
 
        $this->assertTrue($this->db->query($query));
 
    }
 
    
 
    public function testSelectQuery(){
 
        $query = "SELECT * FROM `user` WHERE `id`='1'";
 
        $this->db->query($query);
 
        $this->assertEqual(1,$this->db->getRowCount());
 
    }
 
    
 
    public function testGetRow(){
 
        $query = "SELECT * FROM `user`";
 
        $result = $this->db->getRow($query);
 
        
 
        $testObject = new stdClass();
 
        $testObject->id = '1'; 
 
        $testObject->name = 'testName1';
 
        $testObject->password = 'testPassword1';
 
        
 
        $this->assertIdentical($result,$testObject);
 
    }
 
    
 
    public function testGetResults(){
 
        $query = "SELECT * FROM `user`";
 
        $this->db->getResults($query);
 
        $this->assertEqual(2,$this->db->getRowCount());
 
    }
 
    
 
    public function testDelete(){
 
        $where = array('id = 1');
 
        $table = 'user';
 
        $this->assertTrue($this->db->delete($table,$where));
 
    }
 
    
 
    public function testDeleteQuery(){
 
        $query = "DELETE FROM `user` WHERE `id`='2'";
 
        $this->assertEqual(1,$this->db->query($query));
 
    }
 
    
 
    /**
 
     * @property DB $db
 
     */
 
    public function testDeleteDB(){
 
        $query = "DROP DATABASE IF EXISTS `pdo_db`";
 
        $this->assertTrue($this->db->query($query));
 
    }
 
}
 
?>
 
 |