Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
<?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( 'wp_cf_form_entries', $entry->getTableName() );
$entryValues = $this->entryValuesGeneratorFactory();
$this->assertSame( 'cf_form_entry_values', $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 ) );
$entryValues = $this->entryValuesGeneratorFactory();
$this->assertTrue( is_a( $entryValues->getBuilder(), MySqlBuilder::class ) );
}
/**
* Test getting select query generator
*
* @covers SelectQueryBuilder::getSelectQuery()
* @covers SelectQueryBuilder::$query
*/
public function testGetSelectQuery()
{
$entry = $this->entryGeneratorFactory();
$this->assertTrue( is_a( $entry->getSelectQuery(), Select::class ) );
$entryValues = $this->entryValuesGeneratorFactory();
$this->assertTrue( is_a( $entryValues->getSelectQuery(), Select::class ) );
}
/**
* Test adding orderby DESC
*
* @covers SelectQueryBuilder::addOrderBy()
*/
public function testAddOrderByDesc()
{
$entry = $this->entryGeneratorFactory();
$expectedSql = "SELECT `wp_cf_form_entries`.* FROM `wp_cf_form_entries` WHERE (`wp_cf_form_entries`.`form_id` = 'cf12345') ORDER BY `wp_cf_form_entries`.`form_id` DESC";
$entry->queryByFormsId( 'cf12345' );
$entry->addOrderBy( 'form_id', false );
$actualSql = $entry->getPreparedSql();
$this->assertEquals( $expectedSql, $actualSql );
}
/**
* Test adding orderby ASC
*
* @covers SelectQueryBuilder::addOrderBy()
*/
public function testAddOrderByAsc()
{
$entry = $this->entryGeneratorFactory();
$expectedSql = "SELECT `wp_cf_form_entries`.* FROM `wp_cf_form_entries` WHERE (`wp_cf_form_entries`.`form_id` = 'cf12345') ORDER BY `wp_cf_form_entries`.`form_id` ASC";
$entry->queryByFormsId( 'cf12345' );
$entry->addOrderBy( 'form_id' );
$actualSql = $entry->getPreparedSql();
$this->assertEquals( $expectedSql, $actualSql );
}
/**
* Test the ASC constant
*
* @covers SelectQueryBuilder::ASC
*/
public function testAscConstant()
{
$this->assertEquals( Entry::ASC, 'ASC' );
$this->assertEquals( EntryValues::ASC, 'ASC' );
}
/**
* Test the SDESC constant
*
* @covers SelectQueryBuilder::DESC
*/
public function testDescConstant()
{
$this->assertEquals( Entry::DESC, 'DESC' );
$this->assertEquals( EntryValues::DESC, 'DESC' );
}
}