diff options
author | Igor Scheller <igor.scheller@igorshp.de> | 2019-07-21 13:42:19 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-07-21 13:42:19 +0200 |
commit | 43fa21f6553bb9e46f00d0768eab56e74c842bb4 (patch) | |
tree | 00df255fcd7c3777855bee27967117440c4add8c /tests/Unit/Helpers/Translation/GettextTranslatorTest.php | |
parent | 4f60daa29568a43ab1da761d89124308dc7b37e7 (diff) | |
parent | 1e16f4c47ec15ffea41e1fa612d205b8db2a16d1 (diff) |
Merge branch 'master' into docker
Diffstat (limited to 'tests/Unit/Helpers/Translation/GettextTranslatorTest.php')
-rw-r--r-- | tests/Unit/Helpers/Translation/GettextTranslatorTest.php | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/tests/Unit/Helpers/Translation/GettextTranslatorTest.php b/tests/Unit/Helpers/Translation/GettextTranslatorTest.php new file mode 100644 index 00000000..825cf5b7 --- /dev/null +++ b/tests/Unit/Helpers/Translation/GettextTranslatorTest.php @@ -0,0 +1,67 @@ +<?php + +namespace Engelsystem\Test\Unit\Helpers\Translation; + +use Engelsystem\Helpers\Translation\GettextTranslator; +use Engelsystem\Helpers\Translation\TranslationNotFound; +use Engelsystem\Test\Unit\ServiceProviderTest; +use Gettext\Translation; +use Gettext\Translations; + +class GettextTranslatorTest extends ServiceProviderTest +{ + /** + * @covers \Engelsystem\Helpers\Translation\GettextTranslator::assertHasTranslation() + */ + public function testNoTranslation() + { + $translations = $this->getTranslations(); + + $translator = new GettextTranslator(); + $translator->loadTranslations($translations); + + $this->assertEquals('Translation!', $translator->gettext('test.value')); + + $this->expectException(TranslationNotFound::class); + $this->expectExceptionMessage('//foo.bar'); + + $translator->gettext('foo.bar'); + } + + /** + * @covers \Engelsystem\Helpers\Translation\GettextTranslator::dpgettext() + */ + public function testDpgettext() + { + $translations = $this->getTranslations(); + + $translator = new GettextTranslator(); + $translator->loadTranslations($translations); + + $this->assertEquals('Translation!', $translator->dpgettext(null, null, 'test.value')); + } + + /** + * @covers \Engelsystem\Helpers\Translation\GettextTranslator::dnpgettext() + */ + public function testDnpgettext() + { + $translations = $this->getTranslations(); + + $translator = new GettextTranslator(); + $translator->loadTranslations($translations); + + $this->assertEquals('Translations!', $translator->dnpgettext(null, null, 'test.value', 'test.values', 2)); + } + + protected function getTranslations(): Translations + { + $translations = new Translations(); + $translations[] = + (new Translation(null, 'test.value', 'test.values')) + ->setTranslation('Translation!') + ->setPluralTranslations(['Translations!']); + + return $translations; + } +} |