Code Duplication    Length = 26-30 lines in 4 locations

eZ/Publish/API/Repository/Tests/UserServiceTest.php 4 locations

@@ 2235-2260 (lines=26) @@
2232
     * @param string[] $prioritizedLanguages
2233
     * @param string|null $expectedLanguageCode language code of expected translation
2234
     */
2235
    public function testLoadUserWithPrioritizedLanguagesList(
2236
        array $prioritizedLanguages,
2237
        $expectedLanguageCode
2238
    ) {
2239
        $repository = $this->getRepository();
2240
        $userService = $repository->getUserService();
2241
2242
        $user = $this->createMultiLanguageUser();
2243
        if ($expectedLanguageCode === null) {
2244
            $expectedLanguageCode = $user->contentInfo->mainLanguageCode;
2245
        }
2246
2247
        $loadedUser = $userService->loadUser($user->id, $prioritizedLanguages);
2248
2249
        self::assertEquals(
2250
            $loadedUser->getName($expectedLanguageCode),
2251
            $loadedUser->getName()
2252
        );
2253
2254
        foreach (['fist_name', 'last_name', 'signature'] as $fieldIdentifier) {
2255
            self::assertEquals(
2256
                $loadedUser->getFieldValue($fieldIdentifier, $expectedLanguageCode),
2257
                $loadedUser->getFieldValue($fieldIdentifier)
2258
            );
2259
        }
2260
    }
2261
2262
    /**
2263
     * Test that multi-language logic for the loadUser method works correctly after updating
@@ 2314-2339 (lines=26) @@
2311
     * @param string[] $prioritizedLanguages
2312
     * @param string|null $expectedLanguageCode language code of expected translation
2313
     */
2314
    public function testLoadUserByLoginWithPrioritizedLanguagesList(
2315
        array $prioritizedLanguages,
2316
        $expectedLanguageCode
2317
    ) {
2318
        $repository = $this->getRepository();
2319
        $userService = $repository->getUserService();
2320
        $user = $this->createMultiLanguageUser();
2321
2322
        // load, with prioritized languages, the newly created user
2323
        $loadedUser = $userService->loadUserByLogin($user->login, $prioritizedLanguages);
2324
        if ($expectedLanguageCode === null) {
2325
            $expectedLanguageCode = $loadedUser->contentInfo->mainLanguageCode;
2326
        }
2327
2328
        self::assertEquals(
2329
            $loadedUser->getName($expectedLanguageCode),
2330
            $loadedUser->getName()
2331
        );
2332
2333
        foreach (['first_name', 'last_name', 'signature'] as $fieldIdentifier) {
2334
            self::assertEquals(
2335
                $loadedUser->getFieldValue($fieldIdentifier, $expectedLanguageCode),
2336
                $loadedUser->getFieldValue($fieldIdentifier)
2337
            );
2338
        }
2339
    }
2340
2341
    /**
2342
     * Test that multi-language logic for the loadUserByCredentials method respects
@@ 2350-2379 (lines=30) @@
2347
     * @param string[] $prioritizedLanguages
2348
     * @param string|null $expectedLanguageCode language code of expected translation
2349
     */
2350
    public function testLoadUserByCredentialsWithPrioritizedLanguagesList(
2351
        array $prioritizedLanguages,
2352
        $expectedLanguageCode
2353
    ) {
2354
        $repository = $this->getRepository();
2355
        $userService = $repository->getUserService();
2356
        $user = $this->createMultiLanguageUser();
2357
2358
        // load, with prioritized languages, the newly created user
2359
        $loadedUser = $userService->loadUserByCredentials(
2360
            $user->login,
2361
            'secret',
2362
            $prioritizedLanguages
2363
        );
2364
        if ($expectedLanguageCode === null) {
2365
            $expectedLanguageCode = $loadedUser->contentInfo->mainLanguageCode;
2366
        }
2367
2368
        self::assertEquals(
2369
            $loadedUser->getName($expectedLanguageCode),
2370
            $loadedUser->getName()
2371
        );
2372
2373
        foreach (['first_name', 'last_name', 'signature'] as $fieldIdentifier) {
2374
            self::assertEquals(
2375
                $loadedUser->getFieldValue($fieldIdentifier, $expectedLanguageCode),
2376
                $loadedUser->getFieldValue($fieldIdentifier)
2377
            );
2378
        }
2379
    }
2380
2381
    /**
2382
     * Test that multi-language logic for the loadUsersByEmail method respects
@@ 2390-2417 (lines=28) @@
2387
     * @param string[] $prioritizedLanguages
2388
     * @param string|null $expectedLanguageCode language code of expected translation
2389
     */
2390
    public function testLoadUsersByEmailWithPrioritizedLanguagesList(
2391
        array $prioritizedLanguages,
2392
        $expectedLanguageCode
2393
    ) {
2394
        $repository = $this->getRepository();
2395
        $userService = $repository->getUserService();
2396
        $user = $this->createMultiLanguageUser();
2397
2398
        // load, with prioritized languages, users by email
2399
        $loadedUsers = $userService->loadUsersByEmail($user->email, $prioritizedLanguages);
2400
2401
        foreach ($loadedUsers as $loadedUser) {
2402
            if ($expectedLanguageCode === null) {
2403
                $expectedLanguageCode = $loadedUser->contentInfo->mainLanguageCode;
2404
            }
2405
            self::assertEquals(
2406
                $loadedUser->getName($expectedLanguageCode),
2407
                $loadedUser->getName()
2408
            );
2409
2410
            foreach (['first_name', 'last_name', 'signature'] as $fieldIdentifier) {
2411
                self::assertEquals(
2412
                    $loadedUser->getFieldValue($fieldIdentifier, $expectedLanguageCode),
2413
                    $loadedUser->getFieldValue($fieldIdentifier)
2414
                );
2415
            }
2416
        }
2417
    }
2418
2419
    /**
2420
     * Test that multi-language logic for the loadUserGroupsOfUser method respects