Code Duplication    Length = 26-30 lines in 4 locations

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

@@ 2318-2343 (lines=26) @@
2315
     * @param string[] $prioritizedLanguages
2316
     * @param string|null $expectedLanguageCode language code of expected translation
2317
     */
2318
    public function testLoadUserWithPrioritizedLanguagesList(
2319
        array $prioritizedLanguages,
2320
        $expectedLanguageCode
2321
    ) {
2322
        $repository = $this->getRepository();
2323
        $userService = $repository->getUserService();
2324
2325
        $user = $this->createMultiLanguageUser();
2326
        if ($expectedLanguageCode === null) {
2327
            $expectedLanguageCode = $user->contentInfo->mainLanguageCode;
2328
        }
2329
2330
        $loadedUser = $userService->loadUser($user->id, $prioritizedLanguages);
2331
2332
        self::assertEquals(
2333
            $loadedUser->getName($expectedLanguageCode),
2334
            $loadedUser->getName()
2335
        );
2336
2337
        foreach (['fist_name', 'last_name', 'signature'] as $fieldIdentifier) {
2338
            self::assertEquals(
2339
                $loadedUser->getFieldValue($fieldIdentifier, $expectedLanguageCode),
2340
                $loadedUser->getFieldValue($fieldIdentifier)
2341
            );
2342
        }
2343
    }
2344
2345
    /**
2346
     * Test that multi-language logic for the loadUser method works correctly after updating
@@ 2397-2422 (lines=26) @@
2394
     * @param string[] $prioritizedLanguages
2395
     * @param string|null $expectedLanguageCode language code of expected translation
2396
     */
2397
    public function testLoadUserByLoginWithPrioritizedLanguagesList(
2398
        array $prioritizedLanguages,
2399
        $expectedLanguageCode
2400
    ) {
2401
        $repository = $this->getRepository();
2402
        $userService = $repository->getUserService();
2403
        $user = $this->createMultiLanguageUser();
2404
2405
        // load, with prioritized languages, the newly created user
2406
        $loadedUser = $userService->loadUserByLogin($user->login, $prioritizedLanguages);
2407
        if ($expectedLanguageCode === null) {
2408
            $expectedLanguageCode = $loadedUser->contentInfo->mainLanguageCode;
2409
        }
2410
2411
        self::assertEquals(
2412
            $loadedUser->getName($expectedLanguageCode),
2413
            $loadedUser->getName()
2414
        );
2415
2416
        foreach (['first_name', 'last_name', 'signature'] as $fieldIdentifier) {
2417
            self::assertEquals(
2418
                $loadedUser->getFieldValue($fieldIdentifier, $expectedLanguageCode),
2419
                $loadedUser->getFieldValue($fieldIdentifier)
2420
            );
2421
        }
2422
    }
2423
2424
    /**
2425
     * Test that multi-language logic for the loadUserByCredentials method respects
@@ 2433-2462 (lines=30) @@
2430
     * @param string[] $prioritizedLanguages
2431
     * @param string|null $expectedLanguageCode language code of expected translation
2432
     */
2433
    public function testLoadUserByCredentialsWithPrioritizedLanguagesList(
2434
        array $prioritizedLanguages,
2435
        $expectedLanguageCode
2436
    ) {
2437
        $repository = $this->getRepository();
2438
        $userService = $repository->getUserService();
2439
        $user = $this->createMultiLanguageUser();
2440
2441
        // load, with prioritized languages, the newly created user
2442
        $loadedUser = $userService->loadUserByCredentials(
2443
            $user->login,
2444
            'secret',
2445
            $prioritizedLanguages
2446
        );
2447
        if ($expectedLanguageCode === null) {
2448
            $expectedLanguageCode = $loadedUser->contentInfo->mainLanguageCode;
2449
        }
2450
2451
        self::assertEquals(
2452
            $loadedUser->getName($expectedLanguageCode),
2453
            $loadedUser->getName()
2454
        );
2455
2456
        foreach (['first_name', 'last_name', 'signature'] as $fieldIdentifier) {
2457
            self::assertEquals(
2458
                $loadedUser->getFieldValue($fieldIdentifier, $expectedLanguageCode),
2459
                $loadedUser->getFieldValue($fieldIdentifier)
2460
            );
2461
        }
2462
    }
2463
2464
    /**
2465
     * Test that multi-language logic for the loadUsersByEmail method respects
@@ 2473-2500 (lines=28) @@
2470
     * @param string[] $prioritizedLanguages
2471
     * @param string|null $expectedLanguageCode language code of expected translation
2472
     */
2473
    public function testLoadUsersByEmailWithPrioritizedLanguagesList(
2474
        array $prioritizedLanguages,
2475
        $expectedLanguageCode
2476
    ) {
2477
        $repository = $this->getRepository();
2478
        $userService = $repository->getUserService();
2479
        $user = $this->createMultiLanguageUser();
2480
2481
        // load, with prioritized languages, users by email
2482
        $loadedUsers = $userService->loadUsersByEmail($user->email, $prioritizedLanguages);
2483
2484
        foreach ($loadedUsers as $loadedUser) {
2485
            if ($expectedLanguageCode === null) {
2486
                $expectedLanguageCode = $loadedUser->contentInfo->mainLanguageCode;
2487
            }
2488
            self::assertEquals(
2489
                $loadedUser->getName($expectedLanguageCode),
2490
                $loadedUser->getName()
2491
            );
2492
2493
            foreach (['first_name', 'last_name', 'signature'] as $fieldIdentifier) {
2494
                self::assertEquals(
2495
                    $loadedUser->getFieldValue($fieldIdentifier, $expectedLanguageCode),
2496
                    $loadedUser->getFieldValue($fieldIdentifier)
2497
                );
2498
            }
2499
        }
2500
    }
2501
2502
    /**
2503
     * Test that multi-language logic for the loadUserGroupsOfUser method respects