Newer
Older
<?php
namespace calderawp\CalderaFormsQuery\Tests\Unit\Select;
use calderawp\CalderaFormsQuery\MySqlBuilder;
use calderawp\CalderaFormsQuery\Select\Entry;
use calderawp\CalderaFormsQuery\Select\EntryValues;
use calderawp\CalderaFormsQuery\Select\SelectQueryBuilder;
use calderawp\CalderaFormsQuery\Tests\Unit\TestCase;
use NilPortugues\Sql\QueryBuilder\Manipulation\Select;
class SelectQueryBuilderTest extends TestCase
{
/**
* Test table names
*
* @covers SelectQueryBuilder::getTableName()
* @covers SelectQueryBuilder::$tableName
*/
public function testGetTableName()
{
$entry = $this->entryGeneratorFactory();
$this->assertEquals($this->entryTableName(), $entry->getTableName());
$this->assertSame($this->entryValueTableName(), $entryValues->getTableName());
}
/**
* Test getting SQL builder
*
* @covers SelectQueryBuilder::getBuilder()
* @covers SelectQueryBuilder::$builder
*/
public function testGetBuilder()
{
$entry = $this->entryGeneratorFactory();
$this->assertTrue(is_a($entry->getBuilder(), MySqlBuilder::class));
$this->assertTrue(is_a($entryValues->getBuilder(), MySqlBuilder::class));
}
/**
* Test getting select query generator
*
* @covers SelectQueryBuilder::getSelectQuery()
*/
public function testGetSelectQuery()
{
$entry = $this->entryGeneratorFactory();
$this->assertTrue(is_a($entry->getSelectQuery(), Select::class));
$this->assertTrue(is_a($entryValues->getSelectQuery(), Select::class));
}
/**
* Test adding orderby DESC
*
* @covers SelectQueryBuilder::addOrderBy()
*/
public function testAddOrderByDesc()
{
$entry = $this->entryGeneratorFactory();
$expectedSql = "SELECT `{$this->entryTableName()}`.* FROM `{$this->entryTableName()}` WHERE (`{$this->entryTableName()}`.`form_id` = 'cf12345') ORDER BY `{$this->entryTableName()}`.`form_id` DESC";
$entry->queryByFormsId('cf12345');
$entry->addOrderBy('form_id', false);
}
/**
* Test adding orderby ASC
*
* @covers SelectQueryBuilder::addOrderBy()
*/
public function testAddOrderByAsc()
{
$entry = $this->entryGeneratorFactory();
$expectedSql = "SELECT `{$this->entryTableName()}`.* FROM `{$this->entryTableName()}` WHERE (`{$this->entryTableName()}`.`form_id` = 'cf12345') ORDER BY `{$this->entryTableName()}`.`form_id` ASC";
$entry->queryByFormsId('cf12345');
$entry->addOrderBy('form_id');
}
/**
* Test the ASC constant
*
* @covers SelectQueryBuilder::ASC
*/
public function testAscConstant()
{
$this->assertEquals(Entry::ASC, 'ASC');
$this->assertEquals(EntryValues::ASC, 'ASC');
*
* @covers SelectQueryBuilder::DESC
*/
public function testDescConstant()
{
$this->assertEquals(Entry::DESC, 'DESC');
$this->assertEquals(EntryValues::DESC, 'DESC');
/**
* Test reset of builder
*
* @covers SelectQueryBuilder::resetBuilder()
*/
public function testResetOfBuilder()
{
$entryGenerator = $this->entryGeneratorFactory();
$newBuilder = new MySqlBuilder();
$entryGenerator->resetBuilder( $newBuilder );
$this->assertSame( $newBuilder, $entryGenerator->getBuilder( ) );
}