From b443b53919f50bd0176e7b67dfd1efc28276a770 Mon Sep 17 00:00:00 2001 From: Igor Scheller Date: Thu, 18 Oct 2018 23:34:18 +0200 Subject: Translation: added pluralization support --- tests/Unit/Helpers/TranslatorTest.php | 43 +++++++++++++++++++++++++++-------- 1 file changed, 33 insertions(+), 10 deletions(-) (limited to 'tests/Unit/Helpers') diff --git a/tests/Unit/Helpers/TranslatorTest.php b/tests/Unit/Helpers/TranslatorTest.php index 396d2b65..34050e42 100644 --- a/tests/Unit/Helpers/TranslatorTest.php +++ b/tests/Unit/Helpers/TranslatorTest.php @@ -10,12 +10,12 @@ use stdClass; class TranslatorTest extends ServiceProviderTest { /** - * @covers \Engelsystem\Helpers\Translator::__construct() - * @covers \Engelsystem\Helpers\Translator::setLocale() - * @covers \Engelsystem\Helpers\Translator::setLocales() - * @covers \Engelsystem\Helpers\Translator::getLocale() - * @covers \Engelsystem\Helpers\Translator::getLocales() - * @covers \Engelsystem\Helpers\Translator::hasLocale() + * @covers \Engelsystem\Helpers\Translator::__construct + * @covers \Engelsystem\Helpers\Translator::setLocale + * @covers \Engelsystem\Helpers\Translator::setLocales + * @covers \Engelsystem\Helpers\Translator::getLocale + * @covers \Engelsystem\Helpers\Translator::getLocales + * @covers \Engelsystem\Helpers\Translator::hasLocale */ public function testInit() { @@ -47,7 +47,8 @@ class TranslatorTest extends ServiceProviderTest } /** - * @covers \Engelsystem\Helpers\Translator::translate() + * @covers \Engelsystem\Helpers\Translator::translate + * @covers \Engelsystem\Helpers\Translator::replaceText */ public function testTranslate() { @@ -56,14 +57,36 @@ class TranslatorTest extends ServiceProviderTest ->setConstructorArgs(['de_DE.UTF-8', ['de_DE.UTF-8' => 'Deutsch']]) ->setMethods(['translateGettext']) ->getMock(); - $translator->expects($this->once()) + $translator->expects($this->exactly(2)) ->method('translateGettext') - ->with('My favourite number is %u!') - ->willReturn('Meine Lieblingszahl ist die %u!'); + ->withConsecutive(['Hello!'], ['My favourite number is %u!']) + ->willReturnOnConsecutiveCalls('Hallo!', 'Meine Lieblingszahl ist die %u!'); + + $return = $translator->translate('Hello!'); + $this->assertEquals('Hallo!', $return); $return = $translator->translate('My favourite number is %u!', [3]); $this->assertEquals('Meine Lieblingszahl ist die 3!', $return); } + + /** + * @covers \Engelsystem\Helpers\Translator::translatePlural + */ + public function testTranslatePlural() + { + /** @var Translator|MockObject $translator */ + $translator = $this->getMockBuilder(Translator::class) + ->setConstructorArgs(['de_DE.UTF-8', ['de_DE.UTF-8' => 'Deutsch']]) + ->setMethods(['translateGettextPlural']) + ->getMock(); + $translator->expects($this->once()) + ->method('translateGettextPlural') + ->with('%s apple', '%s apples', 2) + ->willReturn('2 Äpfel'); + + $return = $translator->translatePlural('%s apple', '%s apples', 2, [2]); + $this->assertEquals('2 Äpfel', $return); + } } -- cgit v1.2.3-54-g00ecf