diff options
author | Christian Vogeley <christian.vogeley@hotmail.de> | 2015-01-11 16:22:59 +0100 |
---|---|---|
committer | Christian Vogeley <christian.vogeley@hotmail.de> | 2015-01-11 16:22:59 +0100 |
commit | f0c7612bcd49d32e408e67ac1829ee891c677f7e (patch) | |
tree | d4cff4aa2d728524b631776ffffee71f42056421 /library/intl/tests/Language/LanguageRepositoryTest.php | |
parent | 43f143a211c75138d09ceb89acc48ea7d5c31ca9 (diff) | |
parent | 10102ac2ac4d5b02012a9794e23656717ab05556 (diff) | |
download | volse-hubzilla-f0c7612bcd49d32e408e67ac1829ee891c677f7e.tar.gz volse-hubzilla-f0c7612bcd49d32e408e67ac1829ee891c677f7e.tar.bz2 volse-hubzilla-f0c7612bcd49d32e408e67ac1829ee891c677f7e.zip |
Merge remote-tracking branch 'upstream/master'
Conflicts:
doc/html/classRedmatrix_1_1Import_1_1Import-members.html
doc/html/classRedmatrix_1_1Import_1_1Import.js
Diffstat (limited to 'library/intl/tests/Language/LanguageRepositoryTest.php')
-rw-r--r-- | library/intl/tests/Language/LanguageRepositoryTest.php | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/library/intl/tests/Language/LanguageRepositoryTest.php b/library/intl/tests/Language/LanguageRepositoryTest.php new file mode 100644 index 000000000..ea52cbf4c --- /dev/null +++ b/library/intl/tests/Language/LanguageRepositoryTest.php @@ -0,0 +1,92 @@ +<?php + +namespace CommerceGuys\Intl\Tests\Language; + +use CommerceGuys\Intl\Language\LanguageRepository; +use org\bovigo\vfs\vfsStream; + +/** + * @coversDefaultClass \CommerceGuys\Intl\Language\LanguageRepository + */ +class LanguageRepositoryTest extends \PHPUnit_Framework_TestCase +{ + /** + * English language definitions. + * + * @var array + */ + protected $englishDefinitions = array( + 'en' => array( + 'code' => 'en', + 'name' => 'English', + ), + 'fr' => array( + 'code' => 'fr', + 'name' => 'French', + ), + ); + + /** + * @covers ::__construct + */ + public function testConstructor() + { + // Mock the existence of JSON definitions on the filesystem. + $root = vfsStream::setup('resources'); + vfsStream::newFile('language/en.json')->at($root)->setContent(json_encode($this->englishDefinitions)); + + // Instantiate the language repository and confirm that the definition path + // was properly set. + $languageRepository = new LanguageRepository('vfs://resources/language/'); + $definitionPath = $this->getObjectAttribute($languageRepository, 'definitionPath'); + $this->assertEquals('vfs://resources/language/', $definitionPath); + + return $languageRepository; + } + + /** + * @covers ::get + * @covers ::loadDefinitions + * @covers ::createLanguageFromDefinition + * @uses \CommerceGuys\Intl\Language\Language + * @uses \CommerceGuys\Intl\LocaleResolverTrait + * @depends testConstructor + */ + public function testGet($languageRepository) + { + $language = $languageRepository->get('en'); + $this->assertInstanceOf('CommerceGuys\\Intl\\Language\\Language', $language); + $this->assertEquals('en', $language->getLanguageCode()); + $this->assertEquals('English', $language->getName()); + $this->assertEquals('en', $language->getLocale()); + } + + /** + * @covers ::get + * @covers ::loadDefinitions + * @uses \CommerceGuys\Intl\LocaleResolverTrait + * @expectedException \CommerceGuys\Intl\Exception\UnknownLanguageException + * @depends testConstructor + */ + public function testGetInvalidLanguage($languageRepository) + { + $languageRepository->get('de'); + } + + /** + * @covers ::getAll + * @covers ::loadDefinitions + * @covers ::createLanguageFromDefinition + * @uses \CommerceGuys\Intl\Language\Language + * @uses \CommerceGuys\Intl\LocaleResolverTrait + * @depends testConstructor + */ + public function testGetAll($languageRepository) + { + $languages = $languageRepository->getAll(); + $this->assertArrayHasKey('en', $languages); + $this->assertArrayHasKey('fr', $languages); + $this->assertEquals('en', $languages['en']->getLanguageCode()); + $this->assertEquals('fr', $languages['fr']->getLanguageCode()); + } +} |