This commit is contained in:
parent
199d818f38
commit
4ceb4ac5eb
@ -1,19 +1,53 @@
|
||||
<?php
|
||||
class Doctrine_Query_Condition_TestCase extends Doctrine_UnitTestCase {
|
||||
/*
|
||||
* $Id$
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* This software consists of voluntary contributions made by many individuals
|
||||
* and is licensed under the LGPL. For more information, see
|
||||
* <http://www.phpdoctrine.com>.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Doctrine_Query_Condition_TestCase
|
||||
*
|
||||
* @package Doctrine
|
||||
* @author Konsta Vesterinen <kvesteri@cc.hut.fi>
|
||||
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
|
||||
* @category Object Relational Mapping
|
||||
* @link www.phpdoctrine.com
|
||||
* @since 1.0
|
||||
* @version $Revision$
|
||||
*/
|
||||
class Doctrine_Query_Condition_TestCase extends Doctrine_UnitTestCase
|
||||
{
|
||||
public function prepareData() { }
|
||||
public function prepareTables() { }
|
||||
|
||||
public function testBracktExplode() {
|
||||
public function testBracktExplode()
|
||||
{
|
||||
$str = "item OR item || item";
|
||||
$parts = Doctrine_Query::bracketExplode($str, array(' \|\| ', ' OR '), "(", ")");
|
||||
$parts = Doctrine_Tokenizer::bracketExplode($str, array(' \|\| ', ' OR '), "(", ")");
|
||||
|
||||
$this->assertEqual($parts, array('item','item','item'));
|
||||
|
||||
}
|
||||
public function testConditionParser() {
|
||||
public function testConditionParser()
|
||||
{
|
||||
$query = new Doctrine_Query($this->connection);
|
||||
|
||||
$query->from("User(id)")->where("User.name LIKE 'z%' || User.name LIKE 's%'");
|
||||
$query->select('User.id')->from("User")->where("User.name LIKE 'z%' || User.name LIKE 's%'");
|
||||
|
||||
$sql = "SELECT e.id AS e__id FROM entity e WHERE (e.name LIKE 'z%' OR e.name LIKE 's%') AND (e.type = 0)";
|
||||
$this->assertEqual($query->getQuery(), $sql);
|
||||
@ -47,10 +81,11 @@ class Doctrine_Query_Condition_TestCase extends Doctrine_UnitTestCase {
|
||||
|
||||
}
|
||||
|
||||
public function testConditionParser2() {
|
||||
public function testConditionParser2()
|
||||
{
|
||||
$query = new Doctrine_Query($this->connection);
|
||||
|
||||
$query->from("User(id)")->where("User.name LIKE 'z%' || User.name LIKE 's%'");
|
||||
$query->select('User.id')->from("User")->where("User.name LIKE 'z%' || User.name LIKE 's%'");
|
||||
|
||||
$sql = "SELECT e.id AS e__id FROM entity e WHERE (e.name LIKE 'z%' OR e.name LIKE 's%') AND (e.type = 0)";
|
||||
$this->assertEqual($query->getQuery(), $sql);
|
||||
|
@ -110,15 +110,15 @@ class Doctrine_Query_MultiJoin_TestCase extends Doctrine_UnitTestCase {
|
||||
$this->assertEqual($users[1]->Phonenumber[1]->phonenumber, '456 456');
|
||||
$this->assertEqual($users[1]->Phonenumber[2]->phonenumber, '789 789');
|
||||
}
|
||||
/**
|
||||
|
||||
public function testInitializeMoreData() {
|
||||
$user = $this->connection->getTable('User')->find(4);
|
||||
$user->Book[0]->name = 'The Prince';
|
||||
$user->Book[0]->Author[0]->name = 'Niccolo Machiavelli';
|
||||
$user->Book[1]->Author[1]->name = 'Someone';
|
||||
$user->Book[0]->Author[1]->name = 'Someone';
|
||||
$user->Book[1]->name = 'The Art of War';
|
||||
$user->Book[1]->Author[0]->name = 'Someone';
|
||||
$user->Book[0]->Author[1]->name = 'Niccolo Machiavelli';
|
||||
$user->Book[1]->Author[1]->name = 'Niccolo Machiavelli';
|
||||
|
||||
|
||||
$user->save();
|
||||
@ -126,10 +126,10 @@ class Doctrine_Query_MultiJoin_TestCase extends Doctrine_UnitTestCase {
|
||||
$user = $this->connection->getTable('User')->find(5);
|
||||
$user->Book[0]->name = 'Zadig';
|
||||
$user->Book[0]->Author[0]->name = 'Voltaire';
|
||||
$user->Book[1]->Author[1]->name = 'Someone';
|
||||
$user->Book[0]->Author[1]->name = 'Someone';
|
||||
$user->Book[1]->name = 'Candide';
|
||||
$user->Book[1]->Author[0]->name = 'Someone';
|
||||
$user->Book[0]->Author[1]->name = 'Voltaire';
|
||||
$user->Book[1]->Author[1]->name = 'Voltaire';
|
||||
$user->save();
|
||||
|
||||
$this->connection->clear();
|
||||
@ -153,10 +153,10 @@ class Doctrine_Query_MultiJoin_TestCase extends Doctrine_UnitTestCase {
|
||||
$this->assertEqual($users[0]->Album[1]->Song[3]->title, 'Fabric');
|
||||
|
||||
$this->assertEqual($users[0]->Book[0]->Author[0]->name, 'Niccolo Machiavelli');
|
||||
$this->assertEqual($users[0]->Book[1]->Author[1]->name, 'Someone');
|
||||
$this->assertEqual($users[0]->Book[0]->Author[1]->name, 'Someone');
|
||||
$this->assertEqual($users[0]->Book[1]->name, 'The Art of War');
|
||||
$this->assertEqual($users[0]->Book[1]->Author[0]->name, 'Someone');
|
||||
$this->assertEqual($users[0]->Book[0]->Author[1]->name, 'Niccolo Machiavelli');
|
||||
$this->assertEqual($users[0]->Book[1]->Author[1]->name, 'Niccolo Machiavelli');
|
||||
|
||||
$this->assertEqual($users[1]->id, 5);
|
||||
$this->assertEqual($users[1]->Album[0]->name, 'Clayman');
|
||||
@ -166,10 +166,10 @@ class Doctrine_Query_MultiJoin_TestCase extends Doctrine_UnitTestCase {
|
||||
|
||||
$this->assertEqual($users[1]->Book[0]->name, 'Zadig');
|
||||
$this->assertEqual($users[1]->Book[0]->Author[0]->name, 'Voltaire');
|
||||
$this->assertEqual($users[1]->Book[1]->Author[1]->name, 'Someone');
|
||||
$this->assertEqual($users[1]->Book[0]->Author[1]->name, 'Someone');
|
||||
$this->assertEqual($users[1]->Book[1]->name, 'Candide');
|
||||
$this->assertEqual($users[1]->Book[1]->Author[0]->name, 'Someone');
|
||||
$this->assertEqual($users[1]->Book[0]->Author[1]->name, 'Voltaire');
|
||||
$this->assertEqual($users[1]->Book[1]->Author[1]->name, 'Voltaire');
|
||||
}
|
||||
|
||||
public function testMultipleOneToManyFetchingWithOrderBy() {
|
||||
@ -177,5 +177,4 @@ class Doctrine_Query_MultiJoin_TestCase extends Doctrine_UnitTestCase {
|
||||
|
||||
$users = $query->query("FROM User.Album.Song WHERE User.id IN (4,5) ORDER BY User.Album.Song.title DESC");
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user