Files
dokuwiki-plugin-struct/_test/QueryBuilderWhereTest.php
Andreas Gohr 8fed17f342 clean up for the tests
This mostly corrects file and class names for PSR-2. Function names have
not been adjusted yet
2023-04-05 11:09:51 +02:00

71 lines
1.8 KiB
PHP

<?php
namespace dokuwiki\plugin\struct\test;
use dokuwiki\plugin\struct\meta\QueryBuilder;
use dokuwiki\plugin\struct\meta\QueryBuilderWhere;
/**
* @group plugin_struct
* @group plugins
*/
class QueryBuilderWhereTest extends StructTest
{
public function test_sql()
{
$QB = new QueryBuilder();
$where = new QueryBuilderWhere($QB);
$where->whereAnd('foo = foo');
$this->assertEquals(
$this->cleanWS('(foo = foo)'),
$this->cleanWS($where->toSQL())
);
$where->whereAnd('bar = bar');
$this->assertEquals(
$this->cleanWS('(foo = foo AND bar = bar)'),
$this->cleanWS($where->toSQL())
);
$sub = $where->whereSubAnd();
$this->assertEquals(
$this->cleanWS('(foo = foo AND bar = bar)'),
$this->cleanWS($where->toSQL())
);
$sub->whereAnd('zab = zab');
$this->assertEquals(
$this->cleanWS('(foo = foo AND bar = bar AND (zab = zab))'),
$this->cleanWS($where->toSQL())
);
$sub->whereOr('fab = fab');
$this->assertEquals(
$this->cleanWS('(foo = foo AND bar = bar AND (zab = zab OR fab = fab))'),
$this->cleanWS($where->toSQL())
);
}
public function test_orsql()
{
$QB = new QueryBuilder();
$where = new QueryBuilderWhere($QB);
$where->whereAnd("foo = ''");
$this->assertEquals(
$this->cleanWS("(foo = '')"),
$this->cleanWS($where->toSQL())
);
$sub = $where->whereSubOr();
$sub->whereAnd('bar = bar');
$sub->whereAnd('baz = baz');
$this->assertEquals(
$this->cleanWS("(foo = '' OR (bar = bar AND baz = baz))"),
$this->cleanWS($where->toSQL())
);
}
}