QueryModifierBuilderTest::testHavingModifier()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 2
Bugs 1 Features 0
Metric Value
c 2
b 1
f 0
dl 0
loc 6
rs 9.4285
cc 1
eloc 4
nc 1
nop 0
1
<?php
2
3
namespace Asparagus\Tests;
4
5
use Asparagus\QueryModifierBuilder;
6
use Asparagus\UsageValidator;
7
8
/**
9
 * @covers Asparagus\QueryModifierBuilder
10
 *
11
 * @license GNU GPL v2+
12
 * @author Bene* < [email protected] >
13
 */
14
class QueryModifierBuilderTest extends \PHPUnit_Framework_TestCase {
15
16
	public function testGroupByModifier() {
17
		$queryBuilder = new QueryModifierBuilder( new UsageValidator() );
18
		$queryBuilder->groupBy( array( '?test' ) );
19
20
		$this->assertEquals( ' GROUP BY ?test', $queryBuilder->getSPARQL() );
21
	}
22
23
	public function testGroupByModifier_invalidArgument() {
24
		$queryBuilder = new QueryModifierBuilder( new UsageValidator() );
25
		$this->setExpectedException( 'InvalidArgumentException' );
26
27
		$queryBuilder->groupBy( array( null ) );
28
	}
29
30
	public function testHavingModifier() {
31
		$queryBuilder = new QueryModifierBuilder( new UsageValidator() );
32
		$queryBuilder->having( '?test' );
33
34
		$this->assertEquals( ' HAVING (?test)', $queryBuilder->getSPARQL() );
35
	}
36
37
	public function testHavingModifier_invalidArgument() {
38
		$queryBuilder = new QueryModifierBuilder( new UsageValidator() );
39
		$this->setExpectedException( 'InvalidArgumentException' );
40
41
		$queryBuilder->having( null );
42
	}
43
44
	public function testOrderByModifier() {
45
		$queryBuilder = new QueryModifierBuilder( new UsageValidator() );
46
		$queryBuilder->orderBy( '?test' );
47
48
		$this->assertEquals( ' ORDER BY ASC (?test)', $queryBuilder->getSPARQL() );
49
	}
50
51
	public function testOrderByDescModifier() {
52
		$queryBuilder = new QueryModifierBuilder( new UsageValidator() );
53
		$queryBuilder->orderBy( '?test', 'DESC' );
54
55
		$this->assertEquals( ' ORDER BY DESC (?test)', $queryBuilder->getSPARQL() );
56
	}
57
58
	public function testOrderByModifier_invalidArgument() {
59
		$queryBuilder = new QueryModifierBuilder( new UsageValidator() );
60
		$this->setExpectedException( 'InvalidArgumentException' );
61
62
		$queryBuilder->orderBy( null );
63
	}
64
65
	public function testOrderByModifier_invalidDirection() {
66
		$queryBuilder = new QueryModifierBuilder( new UsageValidator() );
67
		$this->setExpectedException( 'InvalidArgumentException' );
68
69
		$queryBuilder->orderBy( '?test', 'FOO' );
70
	}
71
72
	public function testLimitModifier() {
73
		$queryBuilder = new QueryModifierBuilder( new UsageValidator() );
74
		$queryBuilder->limit( 42 );
75
76
		$this->assertEquals( ' LIMIT 42', $queryBuilder->getSPARQL() );
77
	}
78
79
	public function testLimitModifier_invalidArgument() {
80
		$queryBuilder = new QueryModifierBuilder( new UsageValidator() );
81
		$this->setExpectedException( 'InvalidArgumentException' );
82
83
		$queryBuilder->limit( null );
84
	}
85
86
	public function testOffsetModifier() {
87
		$queryBuilder = new QueryModifierBuilder( new UsageValidator() );
88
		$queryBuilder->offset( 42 );
89
90
		$this->assertEquals( ' OFFSET 42', $queryBuilder->getSPARQL() );
91
	}
92
93
	public function testOffsetModifier_invalidArgument() {
94
		$queryBuilder = new QueryModifierBuilder( new UsageValidator() );
95
		$this->setExpectedException( 'InvalidArgumentException' );
96
97
		$queryBuilder->offset( null );
98
	}
99
100
}
101