Neos\Flow\Tests\Unit\I18n\Cldr\Reader\DatesReaderTest::localizedLiteralsAreCorrectlyReadFromCldr PHP Метод

localizedLiteralsAreCorrectlyReadFromCldr() публичный Метод

    public function localizedLiteralsAreCorrectlyReadFromCldr()
    {
        $getRawArrayCallback = function () {
            $args = func_get_args();
            $mockDatesCldrData = (require __DIR__ . '/../../Fixtures/MockDatesParsedCldrData.php');
            $lastPartOfPath = substr($args[0], strrpos($args[0], '/') + 1);
            // Eras have different XML structure than other literals so they have to be handled differently
            if ($lastPartOfPath === 'eras') {
                return $mockDatesCldrData['eras'];
            } else {
                return $mockDatesCldrData[$lastPartOfPath];
            }
        };
        $mockModel = $this->getAccessibleMock(I18n\Cldr\CldrModel::class, ['getRawArray'], [[]]);
        $mockModel->expects($this->exactly(5))->method('getRawArray')->will($this->returnCallback($getRawArrayCallback));
        $mockRepository = $this->createMock(I18n\Cldr\CldrRepository::class);
        $mockRepository->expects($this->once())->method('getModelForLocale')->with($this->sampleLocale)->will($this->returnValue($mockModel));
        $mockCache = $this->getMockBuilder(VariableFrontend::class)->disableOriginalConstructor()->getMock();
        $this->createCacheExpectations($mockCache);
        $reader = new I18n\Cldr\Reader\DatesReader();
        $reader->injectCldrRepository($mockRepository);
        $reader->injectCache($mockCache);
        $reader->initializeObject();
        $result = $reader->getLocalizedLiteralsForLocale($this->sampleLocale);
        $this->assertEquals('January', $result['months']['format']['wide'][1]);
        $this->assertEquals('Sat', $result['days']['format']['abbreviated']['sat']);
        $this->assertEquals('1', $result['quarters']['format']['narrow'][1]);
        $this->assertEquals('a.m.', $result['dayPeriods']['stand-alone']['wide']['am']);
        $this->assertEquals('Anno Domini', $result['eras']['eraNames'][1]);
        $reader->shutdownObject();
    }