From 766aec2c94836deaf628615cd2c5d3c4dfac1f8a Mon Sep 17 00:00:00 2001 From: zYne Date: Tue, 3 Oct 2006 16:03:19 +0000 Subject: [PATCH] added missing test cases --- tests/QueryComponentAliasTestCase.php | 5 ++ tests/QueryConditionTestCase.php | 86 +++++++++++++++++++++++++++ tests/QueryWhereTestCase.php | 40 +++++++++++++ 3 files changed, 131 insertions(+) create mode 100644 tests/QueryComponentAliasTestCase.php create mode 100644 tests/QueryConditionTestCase.php create mode 100644 tests/QueryWhereTestCase.php diff --git a/tests/QueryComponentAliasTestCase.php b/tests/QueryComponentAliasTestCase.php new file mode 100644 index 000000000..fae1e426e --- /dev/null +++ b/tests/QueryComponentAliasTestCase.php @@ -0,0 +1,5 @@ + diff --git a/tests/QueryConditionTestCase.php b/tests/QueryConditionTestCase.php new file mode 100644 index 000000000..715a4d540 --- /dev/null +++ b/tests/QueryConditionTestCase.php @@ -0,0 +1,86 @@ +assertEqual($parts, array('item','item','item')); + + } + public function testConditionParser() { + $query = new Doctrine_Query($this->connection); + + $query->from("User(id)")->where("User.name LIKE 'z%' || User.name LIKE 's%'"); + + $sql = "SELECT entity.id AS entity__id FROM entity WHERE (entity.name LIKE 'z%' OR entity.name LIKE 's%') AND (entity.type = 0)"; + $this->assertEqual($query->getQuery(), $sql); + + $query->where("(User.name LIKE 'z%') || (User.name LIKE 's%')"); + $this->assertEqual($query->getQuery(), $sql); + + $query->where("((User.name LIKE 'z%') || (User.name LIKE 's%'))"); + $this->assertEqual($query->getQuery(), $sql); + + $query->where("(((User.name LIKE 'z%') || (User.name LIKE 's%')))"); + $this->assertEqual($query->getQuery(), $sql); + + $query->where("(((User.name LIKE 'z%') || User.name LIKE 's%'))"); + $this->assertEqual($query->getQuery(), $sql); + + $query->where("(User.name LIKE 'z%') || User.name LIKE 's%' && User.name LIKE 'a%'"); + + $sql = "SELECT entity.id AS entity__id FROM entity WHERE ((entity.name LIKE 'z%' OR entity.name LIKE 's%') AND entity.name LIKE 'a%') AND (entity.type = 0)"; + + $this->assertEqual($query->getQuery(), $sql); + + $query->where("(((User.name LIKE 'z%') || User.name LIKE 's%')) && User.name LIKE 'a%'"); + $this->assertEqual($query->getQuery(), $sql); + + $query->where("((((User.name LIKE 'z%') || User.name LIKE 's%')) && User.name LIKE 'a%')"); + $this->assertEqual($query->getQuery(), $sql); + + $query->where("(((((User.name LIKE 'z%') || User.name LIKE 's%')) && User.name LIKE 'a%'))"); + $this->assertEqual($query->getQuery(), $sql); + + } + + public function testConditionParser2() { + $query = new Doctrine_Query($this->connection); + + $query->from("User(id)")->where("User.name LIKE 'z%' || User.name LIKE 's%'"); + + $sql = "SELECT entity.id AS entity__id FROM entity WHERE (entity.name LIKE 'z%' OR entity.name LIKE 's%') AND (entity.type = 0)"; + $this->assertEqual($query->getQuery(), $sql); + + $query->where("(User.name LIKE 'z%') OR (User.name LIKE 's%')"); + $this->assertEqual($query->getQuery(), $sql); + + $query->where("((User.name LIKE 'z%') OR (User.name LIKE 's%'))"); + $this->assertEqual($query->getQuery(), $sql); + + $query->where("(((User.name LIKE 'z%') OR (User.name LIKE 's%')))"); + $this->assertEqual($query->getQuery(), $sql); + + $query->where("(((User.name LIKE 'z%') OR User.name LIKE 's%'))"); + $this->assertEqual($query->getQuery(), $sql); + + $query->where("(User.name LIKE 'z%') OR User.name LIKE 's%' AND User.name LIKE 'a%'"); + + $sql = "SELECT entity.id AS entity__id FROM entity WHERE ((entity.name LIKE 'z%' OR entity.name LIKE 's%') AND entity.name LIKE 'a%') AND (entity.type = 0)"; + + $this->assertEqual($query->getQuery(), $sql); + + $query->where("(((User.name LIKE 'z%') OR User.name LIKE 's%')) AND User.name LIKE 'a%'"); + $this->assertEqual($query->getQuery(), $sql); + + $query->where("((((User.name LIKE 'z%') OR User.name LIKE 's%')) AND User.name LIKE 'a%')"); + $this->assertEqual($query->getQuery(), $sql); + + $query->where("(((((User.name LIKE 'z%') OR User.name LIKE 's%')) AND User.name LIKE 'a%'))"); + $this->assertEqual($query->getQuery(), $sql); + } +} +?> diff --git a/tests/QueryWhereTestCase.php b/tests/QueryWhereTestCase.php new file mode 100644 index 000000000..7d0eb7890 --- /dev/null +++ b/tests/QueryWhereTestCase.php @@ -0,0 +1,40 @@ +tables = array('entity'); + parent::prepareTables(); + } + public function testQueryWithDirectParameterSetting() { + $this->connection->clear(); + + $user = new User(); + $user->name = 'someone'; + $user->save(); + + $q = new Doctrine_Query(); + + $q->from('User(id)')->addWhere('User.id = ?',1); + + $users = $q->execute(); + + $this->assertEqual($users->count(), 1); + $this->assertEqual($users[0]->name, 'someone'); + } + public function testQueryWithDirectMultipleParameterSetting() { + $user = new User(); + $user->name = 'someone 2'; + $user->save(); + + $q = new Doctrine_Query(); + + $q->from('User(id)')->addWhere('User.id IN (?, ?)',array(1,2)); + + $users = $q->execute(); + + $this->assertEqual($users->count(), 2); + $this->assertEqual($users[0]->name, 'someone'); + $this->assertEqual($users[1]->name, 'someone 2'); + } +} +?>