public function testGetInstance() { $this->assertEmpty(Where::getInstance(array())->getSQL(), 'Not Empty'); $w1 = new Where(array('a' => 'b')); $this->assertEquals($w1, Where::getInstance($w1)); $w2 = Where::getInstance(array('a' => 'b')); $this->assertEquals($w1->getSQL(), $w2->getSQL()); $this->assertEquals($w1->getParams(), $w2->getParams()); }
/** * Gera um comando SQL de delete no banco de dados * Se não houver uma condição WHERE por segurança não será gerado o comando * @param string $table Nome da tabela * @param mixed $where Array associativo no formato wherearray ou um objeto Where * @example * var_dump($query->delete("tabela1", ['id' => 33])); * //Saida: array( * 'status' => true, * 'sql' => 'DELETE FROM tabela1 WHERE id = ?', * 'values' => array(33) * ) * * @return array No formato queryresult */ public function delete($table, $where) { if (!$this->validateTable($table)) { return $this->returnQueryResultError('O nome da tabela é inválido'); } $where = Where::getInstance($where); if ($where->isEmpty()) { return $this->returnQueryResultError('Condição inválida para um comando DELETE'); } $sql = 'DELETE FROM ' . $table . ' ' . $where->getSQL(); return $this->getQueryResult($sql, $where->getParams()); }
/** * @covers Expression::setHaving * @covers Expression::getHaving * @covers Expression::hasHaving * @covers Expression::clearHaving */ public function testHaving() { $this->assertFalse($this->object->hasHaving(), 'Having deveria ser vazio'); $this->assertEquals($this->object, $this->object->setHaving(array('id' => 1)), 'Não retornou o objeto'); $this->assertTrue($this->object->hasHaving(), 'Having não deveria ser vazio'); $this->assertEquals(array(1), $this->object->getHaving()->getParams(), 'Parametro inválido para o having'); $this->object->setHaving(array()); $this->assertFalse($this->object->hasHaving(), 'Having deveria ser vazio novamente'); $where = Where::getInstance(array('id' => 2)); $this->object->setHaving($where); $this->assertEquals($where, $this->object->getHaving()); $this->assertEquals($this->object, $this->object->clearHaving(), 'Não retornou o objeto'); $this->assertFalse($this->object->hasHaving(), 'Having deveria ser vazio novamente'); }
/** * Adiciona uma condição para a clausurá HAVING * @param mixed $where wherearray ou um objeto Where para condição da consulta * @return \Expression */ public function setHaving($where) { $this->having = Where::getInstance($where); return $this; }