<?php 
 
    require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . '..' . 
                 DIRECTORY_SEPARATOR . 'reliq' 
                 . DIRECTORY_SEPARATOR 
                 . 'autoload.php'; 
 
    class TableTest extends PHPUnit_Framework_TestCase { 
        /** 
         * @var Table 
         */ 
        protected $table; 
 
        /** 
         * Sets up the fixture, for example, opens a network connections. 
         * This method is called before a test is executed. 
         */ 
        protected function setUp() { 
            $this->table = new \Reliq\Table('test', array( 
                                                         'driver' => 'mysql', 
                                                         'columns' => array( 
                                                             'name', 
                                                             'email', 
                                                             'password' 
                                                         ) 
                                                    )); 
        } 
 
        /** 
         * @expectedException Reliq\Exceptions\NoSqlDriverException 
         */ 
        public function testNoAdapterException() { 
            new \Reliq\Table('name', array()); 
        } 
 
        /** 
         * @expectedException Reliq\Exceptions\NoColumnException 
         */ 
        public function testNoColumnException() { 
            $this->table->non_existing_column; 
        } 
 
        public function testDeleteManager() { 
            $this->assertEquals('Reliq\Managers\DeleteManager', 
                                get_class($this->table->delete())); 
        } 
 
        public function testUpdateManager() { 
            $this->assertEquals('Reliq\Managers\UpdateManager', 
                                get_class($this->table->update())); 
        } 
 
        public function testInsertManager() { 
            $this->assertEquals('Reliq\Managers\InsertManager', 
                                get_class($this->table->insert())); 
        } 
 
        public function testExistingColumn() { 
            $c = $this->table->email; 
            $this->assertEquals('Reliq\Nodes\QuotedNode', get_class($c)); 
        } 
 
        public function testChaining() { 
            $node = $this->table->email->eq('test')->and_x 
            ($this->table->name->eq('test@test')); 
 
            $this->assertEquals('test@test', $node->right()->right 
                                           ()->value()); 
        } 
 
        public function testCount() { 
            $node = $this->table->email->count(); 
            $this->assertEquals('test.email', $node->right()->value()); 
        } 
 
        public function testCountChain() { 
            $node = $this->table->email->count()->eq('test'); 
            $this->assertEquals('test', $node->right()->value()); 
        } 
 
        public function testMax() { 
            $node = $this->table->email->max(); 
            $this->assertEquals('test.email', $node->right()->value()); 
        } 
 
        public function testMin() { 
            $node = $this->table->email->min(); 
            $this->assertEquals('test.email', $node->right()->value()); 
        } 
 
        public function testSum() { 
            $node = $this->table->email->sum(); 
            $this->assertEquals('test.email', $node->right()->value()); 
        } 
 
        public function testAvg() { 
            $node = $this->table->email->avg(); 
            $this->assertEquals('test.email', $node->right()->value()); 
        } 
 
        public function testWhere() { 
            $manager = $this->table->where($this->table->name->eq('hello')); 
            $this->assertEquals('Reliq\Managers\SelectManager', 
                                get_class($manager)); 
        } 
 
        public function testProjections() { 
            $manager = $this->table->projections('*'); 
            $this->assertEquals('Reliq\Managers\SelectManager', 
                                get_class($manager)); 
        } 
 
        public function testAlias() { 
            $table2 = $this->table->alias('test2'); 
            $this->assertEquals('test2', $table2->get_name()); 
            $name = $table2->get_table(); 
            $this->assertEquals('test', $name[0]); 
            $this->assertEquals('test2', $name[1]); 
        } 
 
        public function testAll() { 
            $node = $this->table->all(); 
            $this->assertEquals('Reliq\Nodes\QuotedNode', get_class($node)); 
        } 
 
    } 
 
?> 
 
 |