@@ -56,6 +56,9 @@ discard block |
||
| 56 | 56 | return new ApiEntitySearchHelper( $api, $dataTypes ); |
| 57 | 57 | } |
| 58 | 58 | |
| 59 | + /** |
|
| 60 | + * @param string $responseDataFile |
|
| 61 | + */ |
|
| 59 | 62 | private function setupTestApi( &$params, $langCode, $responseDataFile, $statusCode = 200 ) { |
| 60 | 63 | $params = array_merge( $params, [ 'language' => $langCode, 'uselang' => $langCode, 'format' => 'json' ] ); |
| 61 | 64 | $api = $this->createMock( GenericActionApiClient::class ); |
@@ -152,8 +155,8 @@ discard block |
||
| 152 | 155 | /** |
| 153 | 156 | * @dataProvider paramsAndExpectedResponseProvider |
| 154 | 157 | * @param string $responseDataFile |
| 155 | - * @param int $expectedResultCount |
|
| 156 | - * @param array $expectedResultsEntityId |
|
| 158 | + * @param int $expectedResultsEntityIds |
|
| 159 | + * @param array $expectedResultsEntityIds |
|
| 157 | 160 | * @throws ApiRequestException |
| 158 | 161 | */ |
| 159 | 162 | public function testGetRankedSearchResults( $langCode, $params, $responseDataFile, $expectedResultsEntityIds ) { |
@@ -220,6 +223,9 @@ discard block |
||
| 220 | 223 | } |
| 221 | 224 | } |
| 222 | 225 | |
| 226 | + /** |
|
| 227 | + * @return string |
|
| 228 | + */ |
|
| 223 | 229 | private function getResponseDataForId( array $searchResponses, $resultId ) { |
| 224 | 230 | $searchResponses = array_filter( $searchResponses, function ( $response ) use ( $resultId ) { |
| 225 | 231 | return $response->id === $resultId; |
@@ -233,8 +239,6 @@ discard block |
||
| 233 | 239 | /** |
| 234 | 240 | * @dataProvider invalidParamsAndUnexpectedResponseProvider |
| 235 | 241 | * @param string $responseDataFile |
| 236 | - * @param int $expectedResultCount |
|
| 237 | - * @param array $expectedResultsEntityId |
|
| 238 | 242 | */ |
| 239 | 243 | public function testApiResponseStructureIsValid( $langCode, $params, $responseDataFile, $statusCode ) { |
| 240 | 244 | $api = $this->setupTestApi( $params, $langCode, $responseDataFile, $statusCode ); |
@@ -133,6 +133,9 @@ |
||
| 133 | 133 | return $this->getFromBuffer( $entityId, TermTypes::TYPE_ALIAS, $languageCode ) ?? false; |
| 134 | 134 | } |
| 135 | 135 | |
| 136 | + /** |
|
| 137 | + * @param string $languageCode |
|
| 138 | + */ |
|
| 136 | 139 | private function getFromBuffer( EntityId $entityId, $termType, $languageCode ) { |
| 137 | 140 | if ( !( $entityId instanceof Int32EntityId ) ) { |
| 138 | 141 | throw new InvalidArgumentException( "Not an Int32EntityId: " . $entityId->getSerialization() ); |
@@ -14,6 +14,7 @@ |
||
| 14 | 14 | |
| 15 | 15 | /** |
| 16 | 16 | * Some test appear to want to simulate null status codes, hence the type hint |
| 17 | + * @param integer $statusCode |
|
| 17 | 18 | */ |
| 18 | 19 | private function newMockResponse( $response, ?int $statusCode ): ResponseInterface { |
| 19 | 20 | $mockStream = $this->createMock( StreamInterface::class ); |
@@ -56,6 +56,9 @@ |
||
| 56 | 56 | ]; |
| 57 | 57 | } |
| 58 | 58 | |
| 59 | + /** |
|
| 60 | + * @param integer $revision |
|
| 61 | + */ |
|
| 59 | 62 | protected function resolveLogicalRevision( $revision ) { |
| 60 | 63 | return $revision; |
| 61 | 64 | } |
@@ -355,7 +355,7 @@ |
||
| 355 | 355 | } |
| 356 | 356 | |
| 357 | 357 | /** |
| 358 | - * @param iterable<PageEntityUsages> $usages |
|
| 358 | + * @param Traversable $usages |
|
| 359 | 359 | * @param EntityId $entityId |
| 360 | 360 | * @param string[] $changedAspects |
| 361 | 361 | * |
@@ -139,7 +139,7 @@ |
||
| 139 | 139 | /** |
| 140 | 140 | * @param EntityId $entityId |
| 141 | 141 | * @param Language $language |
| 142 | - * @param $termType |
|
| 142 | + * @param string $termType |
|
| 143 | 143 | * @return TermFallback|null |
| 144 | 144 | */ |
| 145 | 145 | private function lookupWithoutCache( EntityId $entityId, Language $language, $termType ): ?TermFallback { |
@@ -97,6 +97,11 @@ discard block |
||
| 97 | 97 | ); |
| 98 | 98 | } |
| 99 | 99 | |
| 100 | + /** |
|
| 101 | + * @param string $term |
|
| 102 | + * @param string $requestLanguageCode |
|
| 103 | + * @param string $actualLanguageCode |
|
| 104 | + */ |
|
| 100 | 105 | private function getTermFallback( $term, $requestLanguageCode, $actualLanguageCode = null ): ?TermFallback { |
| 101 | 106 | if ( $term === null ) { |
| 102 | 107 | return null; |
@@ -280,6 +285,9 @@ discard block |
||
| 280 | 285 | yield [ TermTypes::TYPE_DESCRIPTION ]; |
| 281 | 286 | } |
| 282 | 287 | |
| 288 | + /** |
|
| 289 | + * @param ItemId $itemId |
|
| 290 | + */ |
|
| 283 | 291 | private function mockCacheWithContent( string $term, $itemId ): void { |
| 284 | 292 | $termFallback = new TermFallback( 'en', $term, 'en', 'en' ); |
| 285 | 293 | $this->revisionLookup->method( 'lookupLatestRevisionResolvingRedirect' )->willReturn( [ 1, $itemId ] ); |
@@ -300,6 +308,9 @@ discard block |
||
| 300 | 308 | ->willReturn( [ self::ITEM_Q1_REVISION, $itemId ] ); |
| 301 | 309 | } |
| 302 | 310 | |
| 311 | + /** |
|
| 312 | + * @param ItemId $itemId |
|
| 313 | + */ |
|
| 303 | 314 | private function mockCacheEmpty( $itemId ): void { |
| 304 | 315 | $this->mockRevisionLookup( $itemId ); |
| 305 | 316 | |
@@ -309,6 +320,12 @@ discard block |
||
| 309 | 320 | ->willReturn( TermFallbackCacheFacade::NO_VALUE ); |
| 310 | 321 | } |
| 311 | 322 | |
| 323 | + /** |
|
| 324 | + * @param TermFallback|null $termFallback |
|
| 325 | + * @param ItemId $targetEntityId |
|
| 326 | + * @param integer $revisionId |
|
| 327 | + * @param string $termType |
|
| 328 | + */ |
|
| 312 | 329 | private function mockCacheSetExpectation( |
| 313 | 330 | $termFallback, |
| 314 | 331 | $targetEntityId, |
@@ -323,6 +340,10 @@ discard block |
||
| 323 | 340 | ->with( $termFallback, $targetEntityId, $revisionId, $languageCode, $termType ); |
| 324 | 341 | } |
| 325 | 342 | |
| 343 | + /** |
|
| 344 | + * @param ItemId $itemId |
|
| 345 | + * @param TermFallback|null $termFallback |
|
| 346 | + */ |
|
| 326 | 347 | private function mockInternalLookupWithContent( |
| 327 | 348 | $itemId, |
| 328 | 349 | ?TermFallback $termFallback, |