Skip to content

Commit

Permalink
Adding doc blocks to test case
Browse files Browse the repository at this point in the history
  • Loading branch information
lorenzo committed Mar 17, 2013
1 parent 26bd01d commit 20660a3
Showing 1 changed file with 50 additions and 0 deletions.
Expand Up @@ -25,57 +25,102 @@
**/
class FunctionsTraitTest extends \Cake\TestSuite\TestCase {

/**
* Setups a mock for FunctionsTrait
*
* @return void
*/
public function setUp() {
parent::setUp();
$this->functions = $this->getObjectForTrait(
'\Cake\Model\Datasource\Database\FunctionsTrait'
);
}

/**
* Tests generating a generic function call
*
* @return void
*/
public function testFunc() {
$function = $this->functions->func('MyFunc', ['b' => 'literal']);
$this->assertInstanceOf('\Cake\Model\Datasource\Database\Expression\FunctionExpression', $function);
$this->assertEquals('MyFunc', $function->name());
$this->assertEquals('MyFunc(b)', (string)$function);
}

/**
* Tests generating a SUM() function
*
* @return void
*/
public function testSum() {
$function = $this->functions->sum('total');
$this->assertInstanceOf('\Cake\Model\Datasource\Database\Expression\FunctionExpression', $function);
$this->assertEquals('SUM(total)', (string)$function);
}

/**
* Tests generating a AVG() function
*
* @return void
*/
public function testAvg() {
$function = $this->functions->avg('salary');
$this->assertInstanceOf('\Cake\Model\Datasource\Database\Expression\FunctionExpression', $function);
$this->assertEquals('AVG(salary)', (string)$function);
}

/**
* Tests generating a MAX() function
*
* @return void
*/
public function testMAX() {
$function = $this->functions->max('created');
$this->assertInstanceOf('\Cake\Model\Datasource\Database\Expression\FunctionExpression', $function);
$this->assertEquals('MAX(created)', (string)$function);
}

/**
* Tests generating a MIN() function
*
* @return void
*/
public function testMin() {
$function = $this->functions->min('created');
$this->assertInstanceOf('\Cake\Model\Datasource\Database\Expression\FunctionExpression', $function);
$this->assertEquals('MIN(created)', (string)$function);
}

/**
* Tests generating a COUNT() function
*
* @return void
*/
public function testCount() {
$function = $this->functions->count('*');
$this->assertInstanceOf('\Cake\Model\Datasource\Database\Expression\FunctionExpression', $function);
$this->assertEquals('COUNT(*)', (string)$function);
}

/**
* Tests generating a CONCAT() function
*
* @return void
*/
public function testConcat() {
$function = $this->functions->concat(['title' => 'literal', ' is a string']);
$this->assertInstanceOf('\Cake\Model\Datasource\Database\Expression\FunctionExpression', $function);
$param = $function->bindings()[1]['placeholder'];
$this->assertEquals("CONCAT(title, :$param)", (string)$function);
}

/**
* Tests generating a COALESCE() function
*
* @return void
*/
public function testCoalesce() {
$function = $this->functions->coalesce(['NULL' => 'literal', '1', '2']);
$this->assertInstanceOf('\Cake\Model\Datasource\Database\Expression\FunctionExpression', $function);
Expand All @@ -84,6 +129,11 @@ public function testCoalesce() {
$this->assertEquals("COALESCE(NULL, :$param, :$param2)", (string)$function);
}

/**
* Tests generating a NOW(), CURRENT_TIME() and CURRENT_DATE() function
*
* @return void
*/
public function testNow() {
$function = $this->functions->now();
$this->assertInstanceOf('\Cake\Model\Datasource\Database\Expression\FunctionExpression', $function);
Expand Down

0 comments on commit 20660a3

Please sign in to comment.