1
0
mirror of synced 2025-01-18 14:31:40 +03:00
This commit is contained in:
zYne 2007-05-24 14:51:35 +00:00
parent 199d818f38
commit 4ceb4ac5eb
2 changed files with 51 additions and 17 deletions

View File

@ -1,19 +1,53 @@
<?php <?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 prepareData() { }
public function prepareTables() { } public function prepareTables() { }
public function testBracktExplode() { public function testBracktExplode()
{
$str = "item OR item || item"; $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')); $this->assertEqual($parts, array('item','item','item'));
} }
public function testConditionParser() { public function testConditionParser()
{
$query = new Doctrine_Query($this->connection); $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)"; $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); $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 = 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)"; $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); $this->assertEqual($query->getQuery(), $sql);

View File

@ -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[1]->phonenumber, '456 456');
$this->assertEqual($users[1]->Phonenumber[2]->phonenumber, '789 789'); $this->assertEqual($users[1]->Phonenumber[2]->phonenumber, '789 789');
} }
/**
public function testInitializeMoreData() { public function testInitializeMoreData() {
$user = $this->connection->getTable('User')->find(4); $user = $this->connection->getTable('User')->find(4);
$user->Book[0]->name = 'The Prince'; $user->Book[0]->name = 'The Prince';
$user->Book[0]->Author[0]->name = 'Niccolo Machiavelli'; $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]->name = 'The Art of War';
$user->Book[1]->Author[0]->name = 'Someone'; $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(); $user->save();
@ -126,10 +126,10 @@ class Doctrine_Query_MultiJoin_TestCase extends Doctrine_UnitTestCase {
$user = $this->connection->getTable('User')->find(5); $user = $this->connection->getTable('User')->find(5);
$user->Book[0]->name = 'Zadig'; $user->Book[0]->name = 'Zadig';
$user->Book[0]->Author[0]->name = 'Voltaire'; $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]->name = 'Candide';
$user->Book[1]->Author[0]->name = 'Someone'; $user->Book[1]->Author[0]->name = 'Someone';
$user->Book[0]->Author[1]->name = 'Voltaire'; $user->Book[1]->Author[1]->name = 'Voltaire';
$user->save(); $user->save();
$this->connection->clear(); $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]->Album[1]->Song[3]->title, 'Fabric');
$this->assertEqual($users[0]->Book[0]->Author[0]->name, 'Niccolo Machiavelli'); $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]->name, 'The Art of War');
$this->assertEqual($users[0]->Book[1]->Author[0]->name, 'Someone'); $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]->id, 5);
$this->assertEqual($users[1]->Album[0]->name, 'Clayman'); $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]->name, 'Zadig');
$this->assertEqual($users[1]->Book[0]->Author[0]->name, 'Voltaire'); $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]->name, 'Candide');
$this->assertEqual($users[1]->Book[1]->Author[0]->name, 'Someone'); $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() { 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"); $users = $query->query("FROM User.Album.Song WHERE User.id IN (4,5) ORDER BY User.Album.Song.title DESC");
} }
*/
} }