Completed
Push — 7.5 ( 8fcf9d...73b8c1 )
by
unknown
73:34 queued 49:09
created

getDataForTestGetPrioritizedLanguages()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 19

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
nc 1
nop 0
dl 0
loc 19
rs 9.6333
c 0
b 0
f 0
1
<?php
2
3
/**
4
 * @copyright Copyright (C) eZ Systems AS. All rights reserved.
5
 * @license For full copyright and license information view LICENSE file distributed with this source code.
6
 */
7
declare(strict_types=1);
8
9
namespace eZ\Publish\Core\Repository\SiteAccessAware\Tests\Language;
10
11
use eZ\Publish\Core\Repository\SiteAccessAware\Language\LanguageResolver;
12
use PHPUnit\Framework\TestCase;
13
14
class LanguageResolverTest extends TestCase
15
{
16
    /**
17
     * @covers \eZ\Publish\Core\Repository\SiteAccessAware\Language\AbstractLanguageResolver::getPrioritizedLanguages
18
     *
19
     * @dataProvider getDataForTestGetPrioritizedLanguages
20
     *
21
     * @param array $expectedPrioritizedLanguagesList
22
     * @param array $configLanguages
23
     * @param bool $defaultShowAllTranslations
24
     * @param null|array $forcedLanguages
25
     * @param null|string $contextLanguage
26
     */
27
    public function testGetPrioritizedLanguages(
28
        array $expectedPrioritizedLanguagesList,
29
        array $configLanguages,
30
        bool $defaultShowAllTranslations,
31
        ?array $forcedLanguages,
32
        ?string $contextLanguage
33
    ) {
34
        // note: "use always available" does not affect this test
35
        $defaultUseAlwaysAvailable = true;
36
37
        $languageResolver = new LanguageResolver(
38
            $configLanguages,
39
            $defaultUseAlwaysAvailable,
40
            $defaultShowAllTranslations
41
        );
42
43
        $languageResolver->setContextLanguage($contextLanguage);
44
45
        self::assertEquals(
46
            $expectedPrioritizedLanguagesList,
47
            $languageResolver->getPrioritizedLanguages($forcedLanguages)
48
        );
49
    }
50
51
    /**
52
     * Data provider for testGetPrioritizedLanguages.
53
     *
54
     * @see testGetPrioritizedLanguages
55
     *
56
     * @return array
57
     */
58
    public function getDataForTestGetPrioritizedLanguages(): array
59
    {
60
        return [
61
            [
62
                ['eng-GB', 'pol-PL'], ['eng-GB', 'pol-PL'], false, null, null,
63
            ],
64
            [
65
                [], ['eng-GB', 'pol-PL'], false, [], null, ],
66
            [
67
                ['ger-DE'], ['eng-GB', 'pol-PL'], false, ['ger-DE'], null,
68
            ],
69
            [
70
                [], ['eng-GB', 'pol-PL'], true, null, null,
71
            ],
72
            [
73
                ['ger-DE', 'eng-GB', 'pol-PL'], ['eng-GB', 'pol-PL'], false, null, 'ger-DE',
74
            ],
75
        ];
76
    }
77
}
78