From 58974e6a8e729c3ab53a3a7e7d69c9494fbc7aa0 Mon Sep 17 00:00:00 2001 From: Josha von Gizycki Date: Wed, 11 Mar 2026 08:21:50 +0100 Subject: [PATCH] add test case for precedence of UserDefinedQuery --- .../ResolutionStrategyFactoryTest.php | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/tests/Repository/ResolutionStrategy/ResolutionStrategyFactoryTest.php b/tests/Repository/ResolutionStrategy/ResolutionStrategyFactoryTest.php index c38e0b7..ff3ffe0 100644 --- a/tests/Repository/ResolutionStrategy/ResolutionStrategyFactoryTest.php +++ b/tests/Repository/ResolutionStrategy/ResolutionStrategyFactoryTest.php @@ -45,4 +45,39 @@ class ResolutionStrategyFactoryTest extends TestCase // Then $this->assertInstanceOf($strategyClass, $function); } + + public static function userDefinedPrecedenceProvider(): array + { + return [ + ['R', 'save', 'UPDATE', '', null, [], UserDefinedQuery::class], + ['R', 'delete', 'DELETE', '', null, [], UserDefinedQuery::class], + ['R', 'findById', 'SELECT', '', null, [], UserDefinedQuery::class], + ['R', 'findAll', 'SELECT', '', null, [], UserDefinedQuery::class], + ]; + } + + #[DataProvider('userDefinedPrecedenceProvider')] + public function testUserDefinedQueryHasAlwaysPrecedence( + string $repName, + string $name, + ?string $query, + string $returnType, + ?string $listType, + array $params, + string $strategyClass + ): void + { + // When + $function = (new ResolutionStrategyFactory())->forRepositoryMethod( + $repName, + $name, + $query, + $returnType, + $listType, + $params + ); + + // Then + $this->assertInstanceOf($strategyClass, $function); + } }