public function testTest()
  {
    $person = new Ticket_987_Person();
    $person->gender = 'male';
    $person->firstname = 'jon';
    $person->lastname = 'wage';
    $person->save();

    // creating the query
    $q = Doctrine_Query::create();
    $q->from('Ticket_987_Person p');

    // creating the view
    $view = new Doctrine_View($q, 'view_person2person_type');
    $view->create();

    // creating the query
    $q = Doctrine_Query::create();
    $q->from('Ticket_987_Person p');

    // creating view object for querying
    $view = new Doctrine_View($q, 'view_person2person_type');

    // executes view
    $coll = $view->execute();

    $this->assertEqual($coll->count(), 1);
  }
 public function testCreateView()
 {
     $query = new Doctrine_Query($this->connection);
     $query->from('User');
     $view = new Doctrine_View($query, 'MyView');
     $this->assertEqual($view->getName(), 'MyView');
     $this->assertTrue($view->getQuery() === $query);
     $this->assertTrue($view === $query->getView());
     $this->assertTrue($view->getConnection() instanceof Doctrine_Connection);
     $success = true;
     try {
         $view->create();
     } catch (Exception $e) {
         $success = false;
     }
     $this->assertTrue($success);
     $users = $view->execute();
     $count = $this->conn->count();
     $this->assertTrue($users instanceof Doctrine_Collection);
     $this->assertEqual($users->count(), 8);
     $this->assertEqual($users[0]->name, 'zYne');
     $this->assertEqual($users[0]->state(), Doctrine_Record::STATE_CLEAN);
     $this->assertEqual($count, $this->conn->count());
     $success = true;
     try {
         $view->drop();
     } catch (Exception $e) {
         $success = false;
     }
     $this->assertTrue($success);
 }
Beispiel #3
0
 public function _execute($params)
 {
     $params = $this->_conn->convertBooleans(array_merge($this->_params, $params));
     if (!$this->_view) {
         $query = $this->getQuery($params);
     } else {
         $query = $this->_view->getSelectSql();
     }
     $params = $this->convertEnums($params);
     if ($this->isLimitSubqueryUsed() && $this->_conn->getAttribute(Doctrine::ATTR_DRIVER_NAME) !== 'mysql') {
         $params = array_merge($params, $params);
     }
     if ($this->type !== self::SELECT) {
         return $this->_conn->exec($query, $params);
     }
     $stmt = $this->_conn->execute($query, $params);
     return $stmt;
 }