Skip to content

Commit 27c24e9

Browse files
committed
refactor(QueryBuilder): Properly type the query builder
And make sure the related unit tests are also typed and checked by psalm. Signed-off-by: Carl Schwan <carlschwan@kde.org>
1 parent dd8b274 commit 27c24e9

32 files changed

+873
-2022
lines changed

apps/dav/tests/unit/BackgroundJob/CleanupInvitationTokenJobTest.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
use OCA\DAV\BackgroundJob\CleanupInvitationTokenJob;
1212
use OCP\AppFramework\Utility\ITimeFactory;
1313
use OCP\DB\QueryBuilder\IExpressionBuilder;
14+
use OCP\DB\QueryBuilder\IParameter;
1415
use OCP\DB\QueryBuilder\IQueryBuilder;
1516
use OCP\IDBConnection;
1617
use PHPUnit\Framework\MockObject\MockObject;
@@ -46,9 +47,12 @@ public function testRun(): void {
4647
->willReturn($queryBuilder);
4748
$queryBuilder->method('expr')
4849
->willReturn($expr);
50+
$parameter = $this->createMock(IParameter::class);
51+
$parameter->method('__toString')
52+
->willReturn('namedParameter1337');
4953
$queryBuilder->method('createNamedParameter')
5054
->willReturnMap([
51-
[1337, \PDO::PARAM_STR, null, 'namedParameter1337']
55+
[1337, \PDO::PARAM_STR, null, $parameter],
5256
]);
5357

5458
$function = 'function1337';

apps/dav/tests/unit/Controller/InvitationResponseControllerTest.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
use OCP\AppFramework\Utility\ITimeFactory;
1616
use OCP\DB\IResult;
1717
use OCP\DB\QueryBuilder\IExpressionBuilder;
18+
use OCP\DB\QueryBuilder\IParameter;
1819
use OCP\DB\QueryBuilder\IQueryBuilder;
1920
use OCP\IDBConnection;
2021
use OCP\IRequest;
@@ -415,9 +416,12 @@ private function buildQueryExpects(string $token, ?array $return, int $time): vo
415416
->willReturn($queryBuilder);
416417
$queryBuilder->method('expr')
417418
->willReturn($expr);
419+
$parameter = $this->createMock(IParameter::class);
420+
$parameter->method('__toString')
421+
->willReturn('namedParameterToken');
418422
$queryBuilder->method('createNamedParameter')
419423
->willReturnMap([
420-
[$token, \PDO::PARAM_STR, null, 'namedParameterToken']
424+
[$token, \PDO::PARAM_STR, null, $parameter]
421425
]);
422426

423427
$stmt->expects($this->once())

build/psalm-baseline.xml

Lines changed: 0 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -3173,7 +3173,6 @@
31733173
</DeprecatedClass>
31743174
<DeprecatedInterface>
31753175
<code><![CDATA[$object]]></code>
3176-
<code><![CDATA[Task]]></code>
31773176
<code><![CDATA[private]]></code>
31783177
</DeprecatedInterface>
31793178
</file>
@@ -3503,42 +3502,6 @@
35033502
<code><![CDATA[0]]></code>
35043503
</TypeDoesNotContainType>
35053504
</file>
3506-
<file src="lib/private/DB/QueryBuilder/ExpressionBuilder/ExpressionBuilder.php">
3507-
<ImplicitToStringCast>
3508-
<code><![CDATA[$this->functionBuilder->lower($x)]]></code>
3509-
</ImplicitToStringCast>
3510-
<InvalidArgument>
3511-
<code><![CDATA[$y]]></code>
3512-
<code><![CDATA[$y]]></code>
3513-
</InvalidArgument>
3514-
</file>
3515-
<file src="lib/private/DB/QueryBuilder/ExpressionBuilder/MySqlExpressionBuilder.php">
3516-
<InternalMethod>
3517-
<code><![CDATA[getParams]]></code>
3518-
</InternalMethod>
3519-
<InvalidArrayOffset>
3520-
<code><![CDATA[$params['collation']]]></code>
3521-
</InvalidArrayOffset>
3522-
</file>
3523-
<file src="lib/private/DB/QueryBuilder/QueryBuilder.php">
3524-
<InvalidNullableReturnType>
3525-
<code><![CDATA[string]]></code>
3526-
</InvalidNullableReturnType>
3527-
<NullableReturnStatement>
3528-
<code><![CDATA[$alias]]></code>
3529-
</NullableReturnStatement>
3530-
<ParamNameMismatch>
3531-
<code><![CDATA[$selects]]></code>
3532-
</ParamNameMismatch>
3533-
</file>
3534-
<file src="lib/private/DB/QueryBuilder/QuoteHelper.php">
3535-
<InvalidNullableReturnType>
3536-
<code><![CDATA[string]]></code>
3537-
</InvalidNullableReturnType>
3538-
<NullableReturnStatement>
3539-
<code><![CDATA[$string]]></code>
3540-
</NullableReturnStatement>
3541-
</file>
35423505
<file src="lib/private/DateTimeFormatter.php">
35433506
<FalsableReturnStatement>
35443507
<code><![CDATA[$l->l($type, $timestamp, [
@@ -4256,13 +4219,4 @@
42564219
<code><![CDATA[getAppValue]]></code>
42574220
</DeprecatedMethod>
42584221
</file>
4259-
<file src="tests/lib/TestCase.php">
4260-
<DeprecatedMethod>
4261-
<code><![CDATA[$container]]></code>
4262-
</DeprecatedMethod>
4263-
<InternalMethod>
4264-
<code><![CDATA[lockFile]]></code>
4265-
<code><![CDATA[unlockFile]]></code>
4266-
</InternalMethod>
4267-
</file>
42684222
</files>

0 commit comments

Comments
 (0)