QueryWhereTestCase.php 2.72 KB
Newer Older
zYne's avatar
zYne committed
1 2 3 4 5 6 7
<?php
class Doctrine_Query_Where_TestCase extends Doctrine_UnitTestCase {
    public function prepareData() { }
    public function prepareTables() { 
        $this->tables = array('entity');
        parent::prepareTables();
    }
zYne's avatar
zYne committed
8
    public function testDirectParameterSetting() {
zYne's avatar
zYne committed
9 10 11 12 13 14 15
        $this->connection->clear();

        $user = new User();
        $user->name = 'someone';
        $user->save();

        $q = new Doctrine_Query();
zYne's avatar
zYne committed
16

zYne's avatar
zYne committed
17 18 19
        $q->from('User(id)')->addWhere('User.id = ?',1);

        $users = $q->execute();
zYne's avatar
zYne committed
20

zYne's avatar
zYne committed
21 22 23
        $this->assertEqual($users->count(), 1);
        $this->assertEqual($users[0]->name, 'someone');
    }
zYne's avatar
zYne committed
24
    public function testDirectMultipleParameterSetting() {
zYne's avatar
zYne committed
25
        $user = new User();
zYne's avatar
zYne committed
26
        $user->name = 'someone.2';
zYne's avatar
zYne committed
27 28 29
        $user->save();

        $q = new Doctrine_Query();
zYne's avatar
zYne committed
30

zYne's avatar
zYne committed
31 32 33
        $q->from('User(id)')->addWhere('User.id IN (?, ?)',array(1,2));

        $users = $q->execute();
zYne's avatar
zYne committed
34

zYne's avatar
zYne committed
35 36
        $this->assertEqual($users->count(), 2);
        $this->assertEqual($users[0]->name, 'someone');
zYne's avatar
zYne committed
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
        $this->assertEqual($users[1]->name, 'someone.2');
    }
    public function testOperatorWithNoTrailingSpaces() {
        $q = new Doctrine_Query();
        
        $q->from('User(id)')->where("User.name='someone'");

        $users = $q->execute();
        $this->assertEqual($users->count(), 1);
        
        $this->assertEqual($q->getQuery(), "SELECT entity.id AS entity__id FROM entity WHERE entity.name = 'someone' AND (entity.type = 0)");
    }
    public function testOperatorWithNoTrailingSpaces2() {
        $q = new Doctrine_Query();
        
        $q->from('User(id)')->where("User.name='foo.bar'");

        $users = $q->execute();
        $this->assertEqual($users->count(), 0);
        
        $this->assertEqual($q->getQuery(), "SELECT entity.id AS entity__id FROM entity WHERE entity.name = 'foo.bar' AND (entity.type = 0)");
    }
    public function testOperatorWithSingleTrailingSpace() {
        $q = new Doctrine_Query();
        
        $q->from('User(id)')->where("User.name= 'foo.bar'");

        $users = $q->execute();
        $this->assertEqual($users->count(), 0);
        
        $this->assertEqual($q->getQuery(), "SELECT entity.id AS entity__id FROM entity WHERE entity.name = 'foo.bar' AND (entity.type = 0)");
    }
    public function testOperatorWithSingleTrailingSpace2() {
        $q = new Doctrine_Query();
        
        $q->from('User(id)')->where("User.name ='foo.bar'");

        $users = $q->execute();
        $this->assertEqual($users->count(), 0);
        
        $this->assertEqual($q->getQuery(), "SELECT entity.id AS entity__id FROM entity WHERE entity.name = 'foo.bar' AND (entity.type = 0)");
zYne's avatar
zYne committed
78 79 80
    }
}
?>