Skip to content

Commit

Permalink
Add database
Browse files Browse the repository at this point in the history
  • Loading branch information
bajb committed Jun 3, 2024
1 parent d22378e commit 7f93ee1
Show file tree
Hide file tree
Showing 101 changed files with 153 additions and 122 deletions.
4 changes: 2 additions & 2 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@
}
],
"require": {
"php": ">=5.6.0",
"php": ">=7.4",
"packaged/helpers": "^1.0||^2.0"
},
"require-dev": {
"phpunit/phpunit": "~4.8.0",
"phpunit/phpunit": "~8.0",
"satooshi/php-coveralls": "~1.0.0"
},
"autoload": {
Expand Down
3 changes: 1 addition & 2 deletions phpunit.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,9 @@
convertWarningsToExceptions="true"
processIsolation="false"
stopOnFailure="false"
syntaxCheck="false"
>
<testsuites>
<testsuite>
<testsuite name="tests">
<directory>tests</directory>
</testsuite>
</testsuites>
Expand Down
6 changes: 5 additions & 1 deletion src/Assembler/MySQL/MySQLAssembler.php
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ public function assembleField(FieldExpression $field)
if($field->hasTable())
{
return $this->assembleTableExpression($field->getTable())
. '.' . $this->escapeField($field->getField());
. '.' . $this->escapeField($field->getField());
}
else
{
Expand All @@ -42,6 +42,10 @@ public function assembleField(FieldExpression $field)

public function assembleTableExpression(TableExpression $expr)
{
if($expr->getDatabase())
{
return $this->escapeField($expr->getDatabase()) . '.' . $this->escapeField($expr->getTableName());
}
return $this->escapeField($expr->getTableName());
}

Expand Down
2 changes: 1 addition & 1 deletion src/Assembler/QueryAssembler.php
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,6 @@ public function escapeField($field)

public function escapeValue($value)
{
return '"' . addcslashes($value, '"') . '"';
return $value ? '"' . addcslashes($value, '"') . '"' : '""';
}
}
22 changes: 19 additions & 3 deletions src/Expression/TableExpression.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,21 @@
class TableExpression implements IExpression
{
protected $_table;
protected $_database;

/**
* @return string|null
*/
public function getDatabase()
{
return $this->_database;
}

public function setDatabase($database)
{
$this->_database = $database;
return $this;
}

public function setTableName($table)
{
Expand All @@ -18,11 +33,12 @@ public function getTableName()

/**
* @param $table
* @param $database
*
* @return static
* @return \Packaged\QueryBuilder\Expression\TableExpression
*/
public static function create($table)
public static function create($table, $database = null)
{
return (new static)->setTableName($table);
return (new static())->setTableName($table)->setDatabase($database);
}
}
9 changes: 5 additions & 4 deletions tests/Assembler/AssemblerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,9 @@
use Packaged\QueryBuilder\SelectExpression\AllSelectExpression;
use Packaged\QueryBuilder\Statement\IStatement;
use Packaged\QueryBuilder\Statement\QueryStatement;
use PHPUnit\Framework\TestCase;

class AssemblerTest extends \PHPUnit_Framework_TestCase
class AssemblerTest extends TestCase
{
/**
* @expectedException \Exception
Expand Down Expand Up @@ -46,9 +47,9 @@ public function testAssemblerPrepare()
[
'AND' => [
EqualPredicate::create('field2', null),
NotEqualPredicate::create('field3', null)
NotEqualPredicate::create('field3', null),
],
'OR' => BetweenPredicate::create('field4', 123, 456)
'OR' => BetweenPredicate::create('field4', 123, 456),
]
);
$assembler = new QueryAssembler($stm, true);
Expand Down Expand Up @@ -114,7 +115,7 @@ public function testInPredicate()
)
);

$this->setExpectedException(
$this->expectException(
'\Packaged\QueryBuilder\Exceptions\Assembler\QueryBuilderAssemblerException',
'Cannot assemble an empty ArrayExpression'
);
Expand Down
3 changes: 2 additions & 1 deletion tests/Assembler/CQL/CqlAssemblerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,9 @@
use Packaged\QueryBuilder\SelectExpression\AllSelectExpression;
use Packaged\QueryBuilder\SelectExpression\CountSelectExpression;
use Packaged\QueryBuilder\SelectExpression\FieldSelectExpression;
use PHPUnit\Framework\TestCase;

class CqlAssemblerTest extends \PHPUnit_Framework_TestCase
class CqlAssemblerTest extends TestCase
{
public function testBetween()
{
Expand Down
9 changes: 8 additions & 1 deletion tests/Assembler/MySQL/MySQLAssemblerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,9 @@
use Packaged\QueryBuilder\SelectExpression\MatchSelectExpression;
use Packaged\QueryBuilder\SelectExpression\MaxSelectExpression;
use Packaged\QueryBuilder\SelectExpression\SubQuerySelectExpression;
use PHPUnit\Framework\TestCase;

class MySQLAssemblerTest extends \PHPUnit_Framework_TestCase
class MySQLAssemblerTest extends TestCase
{
public function testTableName()
{
Expand All @@ -28,6 +29,12 @@ public function testTableName()
TableExpression::create('mytable')
)
);
$this->assertEquals(
'`mydb`.`mytable`',
MySQLAssembler::stringify(
TableExpression::create('mytable', 'mydb')
)
);
}

public function testFieldName()
Expand Down
3 changes: 2 additions & 1 deletion tests/Builder/Expect/QueryBuilderDeleteTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,9 @@

use Packaged\QueryBuilder\Assembler\QueryAssembler;
use Packaged\QueryBuilder\Builder\QueryBuilder;
use PHPUnit\Framework\TestCase;

class QueryBuilderDeleteTest extends \PHPUnit_Framework_TestCase
class QueryBuilderDeleteTest extends TestCase
{
public function testDelete()
{
Expand Down
3 changes: 2 additions & 1 deletion tests/Builder/Expect/QueryBuilderSelectTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,9 @@

use Packaged\QueryBuilder\Assembler\QueryAssembler;
use Packaged\QueryBuilder\Builder\QueryBuilder;
use PHPUnit\Framework\TestCase;

class QueryBuilderSelectTest extends \PHPUnit_Framework_TestCase
class QueryBuilderSelectTest extends TestCase
{
public function testSelect()
{
Expand Down
3 changes: 2 additions & 1 deletion tests/Builder/Traits/GroupByTraitTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,9 @@
use Packaged\QueryBuilder\Builder\Traits\GroupByTrait;
use Packaged\QueryBuilder\Clause\GroupByClause;
use Packaged\QueryBuilder\Statement\AbstractStatement;
use PHPUnit\Framework\TestCase;

class GroupByTraitTest extends \PHPUnit_Framework_TestCase
class GroupByTraitTest extends TestCase
{
public function testCreate()
{
Expand Down
2 changes: 1 addition & 1 deletion tests/Builder/Traits/JoinTraitTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
use Packaged\QueryBuilder\SelectExpression\TableSelectExpression;
use Packaged\QueryBuilder\Statement\AbstractStatement;

class JoinTraitTest extends \PHPUnit_Framework_TestCase
class JoinTraitTest extends \PHPUnit\Framework\TestCase
{
public function testCreate()
{
Expand Down
2 changes: 1 addition & 1 deletion tests/Builder/Traits/LimitTraitTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
use Packaged\QueryBuilder\Builder\Traits\LimitTrait;
use Packaged\QueryBuilder\Statement\AbstractStatement;

class LimitTraitTest extends \PHPUnit_Framework_TestCase
class LimitTraitTest extends \PHPUnit\Framework\TestCase
{
public function testCreate()
{
Expand Down
2 changes: 1 addition & 1 deletion tests/Builder/Traits/OrderByTraitTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
use Packaged\QueryBuilder\Clause\OrderByClause;
use Packaged\QueryBuilder\Statement\AbstractStatement;

class OrderByTraitTest extends \PHPUnit_Framework_TestCase
class OrderByTraitTest extends \PHPUnit\Framework\TestCase
{
public function testCreate()
{
Expand Down
2 changes: 1 addition & 1 deletion tests/Builder/Traits/TableTraitTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
use Packaged\QueryBuilder\SelectExpression\TableSelectExpression;
use Packaged\QueryBuilder\Statement\AbstractStatement;

class TableTraitTest extends \PHPUnit_Framework_TestCase
class TableTraitTest extends \PHPUnit\Framework\TestCase
{
public function testGetTable()
{
Expand Down
4 changes: 2 additions & 2 deletions tests/Builder/Traits/WhereTraitTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
use Packaged\QueryBuilder\Builder\Traits\WhereTrait;
use Packaged\QueryBuilder\Statement\AbstractStatement;

class WhereTraitTest extends \PHPUnit_Framework_TestCase
class WhereTraitTest extends \PHPUnit\Framework\TestCase
{
public function testCreate()
{
Expand Down Expand Up @@ -35,7 +35,7 @@ public function testCreate()
public function testException()
{
$class = new FinalWhereTrait();
$this->setExpectedException(
$this->expectException(
'RuntimeException',
'You can only use andWhere and orWhere after specifying a where clause'
);
Expand Down
2 changes: 1 addition & 1 deletion tests/Clause/AbstractFieldClauseTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
use Packaged\QueryBuilder\Clause\AbstractFieldClause;
use Packaged\QueryBuilder\Expression\FieldExpression;

class AbstractFieldClauseTest extends \PHPUnit_Framework_TestCase
class AbstractFieldClauseTest extends \PHPUnit\Framework\TestCase
{
public function testAssemble()
{
Expand Down
10 changes: 5 additions & 5 deletions tests/Clause/AbstractPredicateClauseTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,13 @@
use Packaged\QueryBuilder\Predicate\EqualPredicate;
use Packaged\QueryBuilder\Predicate\NotEqualPredicate;

class AbstractPredicateClauseTest extends \PHPUnit_Framework_TestCase
class AbstractPredicateClauseTest extends \PHPUnit\Framework\TestCase
{
public function testGettersAndSetters()
{
$clause = new FinalAbstractPredicateClause();
$eq = new EqualPredicate();
$neq = new NotEqualPredicate();
$eq = new EqualPredicate();
$neq = new NotEqualPredicate();

$this->assertFalse($clause->hasPredicates());
$clause->addPredicate($eq);
Expand All @@ -27,14 +27,14 @@ public function testGettersAndSetters()
$clause->clearPredicates();
$this->assertFalse($clause->hasPredicates());

$this->setExpectedException("InvalidArgumentException");
$this->expectException("InvalidArgumentException");
$clause->setPredicates([$eq, $neq, 'abc']);
}

public function testAssemble()
{
$clause = new FinalAbstractPredicateClause();
$eq = new EqualPredicate();
$eq = new EqualPredicate();
$string = (new StringExpression())->setValue('val');
$eq->setField('one')->setExpression($string);
$neq = new NotEqualPredicate();
Expand Down
4 changes: 2 additions & 2 deletions tests/Clause/AbstractTableClauseTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
use Packaged\QueryBuilder\Clause\AbstractTableClause;
use Packaged\QueryBuilder\Clause\IClause;

class AbstractTableClauseTest extends \PHPUnit_Framework_TestCase
class AbstractTableClauseTest extends \PHPUnit\Framework\TestCase
{
public function testGettersAndSetters()
{
Expand Down Expand Up @@ -53,4 +53,4 @@ public function getAction()
public function allowMultiple()
{
}
}
}
2 changes: 1 addition & 1 deletion tests/Clause/DeleteClauseTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
use Packaged\QueryBuilder\Assembler\QueryAssembler;
use Packaged\QueryBuilder\Clause\DeleteClause;

class DeleteClauseTest extends \PHPUnit_Framework_TestCase
class DeleteClauseTest extends \PHPUnit\Framework\TestCase
{
public function testAssemble()
{
Expand Down
2 changes: 1 addition & 1 deletion tests/Clause/DuplicateKeyClauseTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
use Packaged\QueryBuilder\Expression\FieldExpression;
use Packaged\QueryBuilder\Predicate\EqualPredicate;

class DuplicateKeyClauseTest extends \PHPUnit_Framework_TestCase
class DuplicateKeyClauseTest extends \PHPUnit\Framework\TestCase
{
public function testDuplicateKey()
{
Expand Down
2 changes: 1 addition & 1 deletion tests/Clause/FromClauseTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
use Packaged\QueryBuilder\SelectExpression\CountSelectExpression;
use Packaged\QueryBuilder\SelectExpression\SubQuerySelectExpression;

class FromClauseTest extends \PHPUnit_Framework_TestCase
class FromClauseTest extends \PHPUnit\Framework\TestCase
{
public function testAssemble()
{
Expand Down
2 changes: 1 addition & 1 deletion tests/Clause/GroupByClauseTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
use Packaged\QueryBuilder\Clause\GroupByClause;
use Packaged\QueryBuilder\Expression\FieldExpression;

class GroupByClauseTest extends \PHPUnit_Framework_TestCase
class GroupByClauseTest extends \PHPUnit\Framework\TestCase
{
public function testAssemble()
{
Expand Down
2 changes: 1 addition & 1 deletion tests/Clause/HavingClauseTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
use Packaged\QueryBuilder\Predicate\EqualPredicate;
use Packaged\QueryBuilder\Predicate\GreaterThanPredicate;

class HavingClauseTest extends \PHPUnit_Framework_TestCase
class HavingClauseTest extends \PHPUnit\Framework\TestCase
{
public function testAssemble()
{
Expand Down
4 changes: 2 additions & 2 deletions tests/Clause/InsertClauseTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
use Packaged\QueryBuilder\Clause\InsertClause;
use Packaged\QueryBuilder\Expression\FieldExpression;

class InsertClauseTest extends \PHPUnit_Framework_TestCase
class InsertClauseTest extends \PHPUnit\Framework\TestCase
{
public function testAssemble()
{
Expand Down Expand Up @@ -43,7 +43,7 @@ public function testGettersAndSetters()
$clause->clearFields();
$this->assertFalse($clause->hasFields());

$this->setExpectedException("InvalidArgumentException");
$this->expectException("InvalidArgumentException");
$clause->setFields([$nameField, $idField, 'abc']);
}
}
2 changes: 1 addition & 1 deletion tests/Clause/LimitClauseTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
use Packaged\QueryBuilder\Expression\NumericExpression;
use Packaged\QueryBuilder\SelectExpression\AllSelectExpression;

class LimitClauseTest extends \PHPUnit_Framework_TestCase
class LimitClauseTest extends \PHPUnit\Framework\TestCase
{
public function testAssemble()
{
Expand Down
2 changes: 1 addition & 1 deletion tests/Clause/OrderByClauseTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
use Packaged\QueryBuilder\Expression\FieldExpression;
use Packaged\QueryBuilder\SelectExpression\CustomSelectExpression;

class OrderByClauseTest extends \PHPUnit_Framework_TestCase
class OrderByClauseTest extends \PHPUnit\Framework\TestCase
{
public function testAssemble()
{
Expand Down
Loading

0 comments on commit 7f93ee1

Please sign in to comment.