/** * @covers DataBase::update * @covers Database::select * @covers Database::selectOne */ public function testUpdate() { $r0 = $this->db->selectOne('name', 'test', array('id' => 1)); $this->assertEquals('value 1', $r0['name']); $this->assertEquals(1, $this->db->update('test', array('name' => 'Other test'), array('id' => 1))); $r1 = $this->db->selectOne('name', 'test', array('id' => 1)); $this->assertEquals('Other test', $r1['name']); $this->assertEquals(3, $this->db->update('test', array('name' => 'Other test'), Where::one('id', '>', 0))); $result = $this->db->select('*', 'test'); foreach ($result as $id => $row) { $this->assertEquals('Other test', $row['name']); } $this->assertEquals(0, $this->db->update('test', array('name' => 'Other test'), array('id' => 0))); $this->assertFalse(LoggerApp::hasError(), LoggerApp::getLastError()); $this->assertEquals(0, $this->db->update('testinvalid', array('xyz' => 1), array('id' => 1))); $this->assertTrue(LoggerApp::hasError(), 'Não gerou o erro esperado'); //Update without where $this->assertEquals(0, $this->db->update('test', array('name' => 'a'), array())); }
public function testSelect() { $r1 = $this->object->select('*', 'teste', Where::one('a', '>', 0)); $this->assertTrue($r1['status'], $r1['message']); $this->assertEquals('SELECT * FROM teste WHERE a > ?', trim($r1['sql'])); $this->assertEquals(array(0), $r1['values']); $r2 = $this->object->select(array('a', 'b'), 'teste', array('id' => 2), array('limit' => 10, 'orderBy' => 'id')); $this->assertTrue($r2['status'], $r2['message']); $this->assertEquals('SELECT a,b FROM teste WHERE id = ? ORDER BY id ASC LIMIT ?', trim($r2['sql'])); $this->assertEquals(array(2, 10), $r2['values']); $r3 = $this->object->select('*', 'teste', array('id' => 2), array('groupBy' => array('id', 'teste'), 'having' => array('teste' => 1))); $this->assertTrue($r3['status'], $r3['message']); $this->assertEquals('SELECT * FROM teste WHERE id = ? GROUP BY id,teste HAVING teste = ?', trim($r3['sql'])); $this->assertEquals(array(2, 1), $r3['values']); $r4 = $this->object->select(array('a', 'b'), 'teste', null, array('limit' => 10, 'offset' => 11)); $this->assertTrue($r4['status'], $r4['message']); $this->assertEquals('SELECT a,b FROM teste LIMIT ? OFFSET ?', trim($r4['sql'])); $this->assertEquals(array(10, 11), $r4['values']); $r5 = $this->object->select('a, b, c', 'xyz', 'WHERE a > ? AND b = ?', array(3, 5)); $this->assertTrue($r5['status'], $r5['message']); $this->assertEquals('SELECT a, b, c FROM xyz WHERE a > ? AND b = ?', trim($r5['sql'])); $this->assertEquals(array(3, 5), $r5['values']); $extra = array('orderBy' => array('id' => 'desc'), 'limit' => 10, 'offset' => 0); $r6 = $this->object->select('*', 'table1', array('ativo' => true), $extra); $this->assertTrue($r6['status'], $r6['message']); $this->assertEquals('SELECT * FROM table1 WHERE ativo = ? ORDER BY id DESC LIMIT ?', trim($r6['sql'])); $this->assertEquals(array(true, 10), $r6['values']); }