Exemple #1
0
 /**
  * Ensures that a SELECT query is properly built.
  */
 public function testSelectQuery()
 {
     $query = Query::select();
     $options = array('type' => 'SELECT', 'distinct' => true, 'expr' => 'jt.user_id, myt.user_name', 'table' => 'mytable', 'alias' => 'myt', 'joins' => array(array('type' => 'RIGHT', 'table' => 'joinedtable', 'alias' => 'jt', 'condition' => 'jt.user_id = myt.user_id')), 'condition' => 'jt.user_id > 0', 'groupBy' => 'jt.user_name ASC', 'having' => 'COUNT(*) > 1', 'orderBy' => 'jt.user_id ASC', 'limit' => 10, 'offset' => 20, 'variables' => array('myVar' => 100, 'anotherVar' => 'string'));
     $query->isDistinct($options['distinct'])->expr($options['expr'])->from($options['table'], $options['alias'])->join($options['joins'][0]['type'], $options['joins'][0]['table'], $options['joins'][0]['alias'], $options['joins'][0]['condition'])->where($options['condition'])->groupBy($options['groupBy'])->having($options['having'])->orderBy($options['orderBy'])->limit($options['limit'])->offset($options['offset'])->replace($options['variables']);
     $queryOptions = $query->getOptions();
     foreach ($options as $key => $value) {
         $this->assertArrayHasKey($key, $queryOptions);
         $this->assertEquals($options[$key], $queryOptions[$key]);
     }
 }
Exemple #2
0
 /**
  * Tests updating data.
  */
 public function testUpdate()
 {
     // Insert some fake data.
     $this->insertFakeData(3);
     $userName = '******';
     // Update the table data.
     $result = Query::update()->table('users')->set(array('user_name' => '{string:user_name}'))->where('user_id = {int:user_id}')->replace(array('user_id' => 1, 'user_name' => $userName))->execute();
     // Make sure it worked!
     $this->assertTrue($result->success());
     $this->assertEquals(1, $result->getAffectedRows());
     // Now we should select the data.
     $result = Query::select()->expr('user_name')->from('users')->where('user_id = {int:user_id}')->replace(array('user_id' => 1))->execute();
     $this->assertTrue($result->success());
     // Make sure it was actually updated.
     $row = $result->fetchAssoc();
     $this->assertArrayHasKey('user_name', $row);
     $this->assertEquals($userName, $row['user_name']);
 }
 /**
  * Tests to ensure the MySQL Driver generates SELECT queries properly.
  */
 public function testSelectQuery()
 {
     $query = Query::select()->expr('mycolumn, anothercolumn')->from('mytable', 'myt')->join('INNER', 'users', 'u', 'u.user_id = myt.user_id')->where('u.user_id = 1')->groupBy('myt.user_group')->having('myt.user_id > 1')->orderBy('myt.user_id DESC')->limit(20)->offset(60);
     $result = MysqlDriver::generateQuery($query->getOptions());
     $this->assertEquals('
     SELECT
         mycolumn, anothercolumn
     FROM mytable AS myt
         INNER JOIN users AS u ON u.user_id = myt.user_id
     WHERE u.user_id = 1
     GROUP BY myt.user_group
     HAVING myt.user_id > 1
     ORDER BY myt.user_id DESC
     LIMIT 60, 20', $result);
 }
 /**
  * Creates an instance of SelectQuery for testing.
  */
 public function setUp()
 {
     $this->selectQuery = Query::select();
 }