/** * Ensures that an UPDATE query is properly built. */ public function testUpdateQuery() { $query = Query::update(); $options = array('type' => 'UPDATE', 'table' => 'updateTable', 'set' => array('user_id' => 'user_id + 1', 'user_name' => '\'name\''), 'condition' => 'user_id = 100', 'limit' => 1); $query->table($options['table'])->set($options['set'])->where($options['condition'])->limit($options['limit']); $queryOptions = $query->getOptions(); foreach ($options as $key => $value) { $this->assertArrayHasKey($key, $queryOptions); $this->assertEquals($options[$key], $queryOptions[$key]); } }
/** * 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 UPDATE queries properly. */ public function testUpdateQuery() { $query = Query::update()->table('tabletoupdate')->set(array('myName' => '\'newName\''))->where('myUserId = 100')->limit(2); $result = MysqlDriver::generateQuery($query->getOptions()); $this->assertEquals(' UPDATE tabletoupdate SET myName = \'newName\' WHERE myUserId = 100 LIMIT 2', $result); }
/** * Creates an instance of UpdateQuery for testing. */ public function setUp() { $this->updateQuery = Query::update(); }