|
@@ 74-85 (lines=12) @@
|
| 71 |
|
/** |
| 72 |
|
* @dataProvider joinTypeDataProvider |
| 73 |
|
*/ |
| 74 |
|
public function testAddJoin($joinType, $addMethodName) |
| 75 |
|
{ |
| 76 |
|
$this->criteria->{$addMethodName}('products', '{root}.products'); |
| 77 |
|
|
| 78 |
|
$expectedJoin = new Join($joinType, '{root}.products'); |
| 79 |
|
$this->assertTrue($this->criteria->hasJoin('products')); |
| 80 |
|
$this->assertEquals($expectedJoin, $this->criteria->getJoin('products')); |
| 81 |
|
$this->assertEquals(['products' => $expectedJoin], $this->criteria->getJoins()); |
| 82 |
|
$this->assertQuery( |
| 83 |
|
'SELECT e FROM Test:User e ' . $joinType . ' JOIN e.products a1' |
| 84 |
|
); |
| 85 |
|
} |
| 86 |
|
|
| 87 |
|
/** |
| 88 |
|
* @dataProvider joinTypeDataProvider |
|
@@ 255-267 (lines=13) @@
|
| 252 |
|
/** |
| 253 |
|
* @dataProvider joinTypeDataProvider |
| 254 |
|
*/ |
| 255 |
|
public function testAddSameJoinTwice($joinType, $addMethodName) |
| 256 |
|
{ |
| 257 |
|
$this->criteria->{$addMethodName}('products', '{root}.products'); |
| 258 |
|
$this->criteria->{$addMethodName}('products', '{root}.products'); |
| 259 |
|
|
| 260 |
|
$expectedJoin = new Join($joinType, '{root}.products'); |
| 261 |
|
$this->assertTrue($this->criteria->hasJoin('products')); |
| 262 |
|
$this->assertEquals($expectedJoin, $this->criteria->getJoin('products')); |
| 263 |
|
$this->assertEquals(['products' => $expectedJoin], $this->criteria->getJoins()); |
| 264 |
|
$this->assertQuery( |
| 265 |
|
'SELECT e FROM Test:User e ' . $joinType . ' JOIN e.products a1' |
| 266 |
|
); |
| 267 |
|
} |
| 268 |
|
|
| 269 |
|
public function testAddInnerJoinAndThenLeftJoinForSameJoinStatement() |
| 270 |
|
{ |