@@ 1419-1445 (lines=27) @@ | ||
1416 | * |
|
1417 | * @return void |
|
1418 | */ |
|
1419 | public function testGenerateAssociationQueryHasOne() { |
|
1420 | $this->Model = new TestModel4(); |
|
1421 | $this->Model->schema(); |
|
1422 | $this->_buildRelatedModels($this->Model); |
|
1423 | ||
1424 | $binding = array('type' => 'hasOne', 'model' => 'TestModel5'); |
|
1425 | ||
1426 | $queryData = array(); |
|
1427 | $resultSet = null; |
|
1428 | $null = null; |
|
1429 | ||
1430 | $params = &$this->_prepareAssociationQuery($this->Model, $queryData, $binding); |
|
1431 | ||
1432 | $result = $this->Dbo->generateAssociationQuery($this->Model, $params['linkModel'], $params['type'], $params['assoc'], $params['assocData'], $queryData, $params['external'], $resultSet); |
|
1433 | $this->assertTrue($result); |
|
1434 | ||
1435 | $testModel5Table = $this->Dbo->fullTableName($this->Model->TestModel5); |
|
1436 | $result = $this->Dbo->buildJoinStatement($queryData['joins'][0]); |
|
1437 | $expected = ' LEFT JOIN ' . $testModel5Table . ' AS `TestModel5` ON (`TestModel5`.`test_model4_id` = `TestModel4`.`id`)'; |
|
1438 | $this->assertEquals(trim($expected), trim($result)); |
|
1439 | ||
1440 | $result = $this->Dbo->generateAssociationQuery($this->Model, $null, null, null, null, $queryData, false, $null); |
|
1441 | $this->assertRegExp('/^SELECT\s+`TestModel4`\.`id`, `TestModel4`\.`name`, `TestModel4`\.`created`, `TestModel4`\.`updated`, `TestModel5`\.`id`, `TestModel5`\.`test_model4_id`, `TestModel5`\.`name`, `TestModel5`\.`created`, `TestModel5`\.`updated`\s+/', $result); |
|
1442 | $this->assertRegExp('/\s+FROM\s+\S+`test_model4` AS `TestModel4`\s+LEFT JOIN\s+/', $result); |
|
1443 | $this->assertRegExp('/`test_model5` AS `TestModel5`\s+ON\s+\(`TestModel5`.`test_model4_id` = `TestModel4`.`id`\)\s+WHERE/', $result); |
|
1444 | $this->assertRegExp('/\s+WHERE\s+(?:\()?\s*1 = 1\s*(?:\))?\s*$/', $result); |
|
1445 | } |
|
1446 | ||
1447 | /** |
|
1448 | * testGenerateAssociationQueryHasOneWithConditions method |
|
@@ 1481-1506 (lines=26) @@ | ||
1478 | * |
|
1479 | * @return void |
|
1480 | */ |
|
1481 | public function testGenerateAssociationQueryBelongsTo() { |
|
1482 | $this->Model = new TestModel5(); |
|
1483 | $this->Model->schema(); |
|
1484 | $this->_buildRelatedModels($this->Model); |
|
1485 | ||
1486 | $binding = array('type' => 'belongsTo', 'model' => 'TestModel4'); |
|
1487 | $queryData = array(); |
|
1488 | $resultSet = null; |
|
1489 | $null = null; |
|
1490 | ||
1491 | $params = &$this->_prepareAssociationQuery($this->Model, $queryData, $binding); |
|
1492 | ||
1493 | $result = $this->Dbo->generateAssociationQuery($this->Model, $params['linkModel'], $params['type'], $params['assoc'], $params['assocData'], $queryData, $params['external'], $resultSet); |
|
1494 | $this->assertTrue($result); |
|
1495 | ||
1496 | $testModel4Table = $this->Dbo->fullTableName($this->Model->TestModel4, true, true); |
|
1497 | $result = $this->Dbo->buildJoinStatement($queryData['joins'][0]); |
|
1498 | $expected = ' LEFT JOIN ' . $testModel4Table . ' AS `TestModel4` ON (`TestModel5`.`test_model4_id` = `TestModel4`.`id`)'; |
|
1499 | $this->assertEquals(trim($expected), trim($result)); |
|
1500 | ||
1501 | $result = $this->Dbo->generateAssociationQuery($this->Model, $null, null, null, null, $queryData, false, $null); |
|
1502 | $this->assertRegExp('/^SELECT\s+`TestModel5`\.`id`, `TestModel5`\.`test_model4_id`, `TestModel5`\.`name`, `TestModel5`\.`created`, `TestModel5`\.`updated`, `TestModel4`\.`id`, `TestModel4`\.`name`, `TestModel4`\.`created`, `TestModel4`\.`updated`\s+/', $result); |
|
1503 | $this->assertRegExp('/\s+FROM\s+\S+`test_model5` AS `TestModel5`\s+LEFT JOIN\s+\S+`test_model4` AS `TestModel4`/', $result); |
|
1504 | $this->assertRegExp('/\s+ON\s+\(`TestModel5`.`test_model4_id` = `TestModel4`.`id`\)\s+WHERE\s+/', $result); |
|
1505 | $this->assertRegExp('/\s+WHERE\s+(?:\()?\s*1 = 1\s*(?:\))?\s*$/', $result); |
|
1506 | } |
|
1507 | ||
1508 | /** |
|
1509 | * testGenerateAssociationQueryBelongsToWithConditions method |