Skip to content

Commit 2f2a64a

Browse files
committed
Unit tests
1 parent 106da41 commit 2f2a64a

File tree

17 files changed

+544
-494
lines changed

17 files changed

+544
-494
lines changed

src/Database/Adapter.php

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -747,15 +747,16 @@ abstract public function deleteDocuments(string $collection, array $internalIds,
747747
*
748748
* Find data sets using chosen queries
749749
*
750-
* @param string $collection
750+
* @param QueryContext $context
751751
* @param array<Query> $queries
752752
* @param int|null $limit
753753
* @param int|null $offset
754-
* @param array<string> $orderAttributes
755-
* @param array<string> $orderTypes
756754
* @param array<string, mixed> $cursor
757755
* @param string $cursorDirection
758756
* @param string $forPermission
757+
* @param array<Query> $selects
758+
* @param array<Query> $filters
759+
* @param array<Query> $joins
759760
* @param array<Query> $orderQueries
760761
*
761762
* @return array<Document>
@@ -1077,7 +1078,7 @@ abstract public function getAttributeWidth(Document $collection): int;
10771078
abstract public function getKeywords(): array;
10781079

10791080
/**
1080-
* @param array<Query> $selections
1081+
* @param array<Query> $selects
10811082
* @return string
10821083
*/
10831084
abstract protected function getAttributeProjection(array $selects): string;

src/Database/Adapter/MariaDB.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ public function delete(string $name): bool
6161
$sql = "DROP DATABASE `{$name}`;";
6262

6363
$sql = $this->trigger(Database::EVENT_DATABASE_DELETE, $sql);
64-
var_dump($sql);
64+
var_dump($sql);
6565
return $this->getPDO()
6666
->prepare($sql)
6767
->execute();

src/Database/Adapter/SQL.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1562,13 +1562,13 @@ protected function getAttributeProjection(array $selects): string
15621562

15631563
$string = '';
15641564
foreach ($selects as $select) {
1565-
if($select->getAttribute() === '$collection'){
1565+
if ($select->getAttribute() === '$collection') {
15661566
continue;
15671567
}
15681568

15691569
$needle = $select->getAlias().':'.$select->getAttribute();
1570-
1571-
if (in_array($needle, $duplications)){
1570+
1571+
if (in_array($needle, $duplications)) {
15721572
continue;
15731573
}
15741574

src/Database/Database.php

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6243,7 +6243,7 @@ public function decode(QueryContext $context, Document $document, array $selects
62436243
$alias = Query::DEFAULT_ALIAS;
62446244

62456245
foreach ($selects as $select) {
6246-
if($select->getAttribute() == $key || $this->adapter->filter($select->getAttribute()) == $key){
6246+
if ($select->getAttribute() == $key || $this->adapter->filter($select->getAttribute()) == $key) {
62476247
$alias = $select->getAlias();
62486248
break;
62496249
}
@@ -6256,11 +6256,11 @@ public function decode(QueryContext $context, Document $document, array $selects
62566256

62576257
$attribute = $internals[$key] ?? null;
62586258

6259-
if (is_null($attribute)){
6259+
if (is_null($attribute)) {
62606260
$attribute = $schema[$collection->getId()][$this->adapter->filter($key)] ?? null;
62616261
}
62626262

6263-
if (is_null($attribute)){
6263+
if (is_null($attribute)) {
62646264
continue;
62656265
}
62666266

@@ -6320,7 +6320,7 @@ public function casting(QueryContext $context, Document $document, array $select
63206320
$alias = Query::DEFAULT_ALIAS;
63216321

63226322
foreach ($selects as $select) {
6323-
if($select->getAttribute() == $key || $this->adapter->filter($select->getAttribute()) == $key){
6323+
if ($select->getAttribute() == $key || $this->adapter->filter($select->getAttribute()) == $key) {
63246324
$alias = $select->getAlias();
63256325
break;
63266326
}
@@ -6333,15 +6333,15 @@ public function casting(QueryContext $context, Document $document, array $select
63336333

63346334
$attribute = $internals[$key] ?? null;
63356335

6336-
if (is_null($attribute)){
6336+
if (is_null($attribute)) {
63376337
$attribute = $schema[$collection->getId()][$this->adapter->filter($key)] ?? null;
63386338
}
63396339

6340-
if (is_null($attribute)){
6340+
if (is_null($attribute)) {
63416341
continue;
63426342
}
63436343

6344-
if (is_null($value)){
6344+
if (is_null($value)) {
63456345
$new->setAttribute($attribute['$id'], null);
63466346
continue;
63476347
}

src/Database/Query.php

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,11 @@ public function getAttributeRight(): string
216216
return $this->attributeRight;
217217
}
218218

219+
public function getAs(): string
220+
{
221+
return $this->as;
222+
}
223+
219224
public function getCollection(): string
220225
{
221226
return $this->collection;
@@ -703,33 +708,51 @@ public static function and(array $queries): self
703708
return new self(self::TYPE_AND, '', $queries);
704709
}
705710

711+
/**
712+
* @param string $collection
713+
* @param string $alias
714+
* @param array<Query> $queries
715+
* @return self
716+
*/
706717
public static function join(string $collection, string $alias, array $queries = []): self
707718
{
708719
return new self(self::TYPE_INNER_JOIN, values: $queries, alias: $alias, collection: $collection);
709720
}
710721

722+
/**
723+
* @param string $collection
724+
* @param string $alias
725+
* @param array<Query> $queries
726+
* @return self
727+
*/
711728
public static function innerJoin(string $collection, string $alias, array $queries = []): self
712729
{
713730
return new self(self::TYPE_INNER_JOIN, values: $queries, alias: $alias, collection: $collection);
714731
}
715732

716733
/**
717-
* @param array<Query> $conditions
734+
* @param string $collection
735+
* @param string $alias
736+
* @param array<Query> $queries
737+
* @return self
718738
*/
719739
public static function leftJoin(string $collection, string $alias, array $queries = []): self
720740
{
721741
return new self(self::TYPE_LEFT_JOIN, values: $queries, alias: $alias, collection: $collection);
722742
}
723743

724744
/**
725-
* @param array<Query> $conditions
745+
* @param string $collection
746+
* @param string $alias
747+
* @param array<Query> $queries
748+
* @return self
726749
*/
727750
public static function rightJoin(string $collection, string $alias, array $queries = []): self
728751
{
729752
return new self(self::TYPE_RIGHT_JOIN, values: $queries, alias: $alias, collection: $collection);
730753
}
731754

732-
public static function relationEqual($leftAlias, string $leftColumn, string $rightAlias, string $rightColumn): self
755+
public static function relationEqual(string $leftAlias, string $leftColumn, string $rightAlias, string $rightColumn): self
733756
{
734757
return new self(self::TYPE_RELATION_EQUAL, $leftColumn, [], alias: $leftAlias, attributeRight: $rightColumn, aliasRight: $rightAlias);
735758
}

src/Database/QueryContext.php

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,19 @@
77

88
class QueryContext
99
{
10+
/**
11+
* @var array<Document>
12+
*/
1013
protected array $collections = [];
1114

15+
/**
16+
* @var array<string>
17+
*/
1218
protected array $aliases = [];
1319

20+
/**
21+
* @var array<mixed>
22+
*/
1423
protected array $skipAuthCollections = [];
1524

1625
public function __construct()

0 commit comments

Comments
 (0)