<?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));
}
}
?>
|