From f90ab26feedb61615bde2f94bbf5acc7e4f28342 Mon Sep 17 00:00:00 2001 From: Igor Scheller Date: Mon, 8 Jul 2019 01:31:59 +0200 Subject: Moved translation helpers to sub namespace --- .../Translation/TranslationServiceProviderTest.php | 84 ++++++++++++++++++++ tests/Unit/Helpers/Translation/TranslatorTest.php | 90 ++++++++++++++++++++++ .../Helpers/TranslationServiceProviderTest.php | 84 -------------------- tests/Unit/Helpers/TranslatorTest.php | 90 ---------------------- tests/Unit/HelpersTest.php | 2 +- tests/Unit/Middleware/LegacyMiddlewareTest.php | 2 +- tests/Unit/Middleware/SetLocaleTest.php | 2 +- .../Renderer/Twig/Extensions/TranslationTest.php | 2 +- 8 files changed, 178 insertions(+), 178 deletions(-) create mode 100644 tests/Unit/Helpers/Translation/TranslationServiceProviderTest.php create mode 100644 tests/Unit/Helpers/Translation/TranslatorTest.php delete mode 100644 tests/Unit/Helpers/TranslationServiceProviderTest.php delete mode 100644 tests/Unit/Helpers/TranslatorTest.php (limited to 'tests/Unit') diff --git a/tests/Unit/Helpers/Translation/TranslationServiceProviderTest.php b/tests/Unit/Helpers/Translation/TranslationServiceProviderTest.php new file mode 100644 index 00000000..171b5967 --- /dev/null +++ b/tests/Unit/Helpers/Translation/TranslationServiceProviderTest.php @@ -0,0 +1,84 @@ +getApp(['make', 'instance', 'get']); + /** @var Config|MockObject $config */ + $config = $this->createMock(Config::class); + /** @var Session|MockObject $session */ + $session = $this->createMock(Session::class); + /** @var Translator|MockObject $translator */ + $translator = $this->createMock(Translator::class); + + /** @var TranslationServiceProvider|MockObject $serviceProvider */ + $serviceProvider = $this->getMockBuilder(TranslationServiceProvider::class) + ->setConstructorArgs([$app]) + ->setMethods(['initGettext', 'setLocale']) + ->getMock(); + + $serviceProvider->expects($this->once()) + ->method('initGettext'); + + $app->expects($this->exactly(2)) + ->method('get') + ->withConsecutive(['config'], ['session']) + ->willReturnOnConsecutiveCalls($config, $session); + + $defaultLocale = 'fo_OO'; + $locale = 'te_ST.WTF-9'; + $locales = ['fo_OO' => 'Foo', 'fo_OO.BAR' => 'Foo (Bar)', 'te_ST.WTF-9' => 'WTF\'s Testing?']; + $config->expects($this->exactly(2)) + ->method('get') + ->withConsecutive( + ['locales'], + ['default_locale'] + ) + ->willReturnOnConsecutiveCalls( + $locales, + $defaultLocale + ); + + $session->expects($this->once()) + ->method('get') + ->with('locale', $defaultLocale) + ->willReturn($locale); + $session->expects($this->once()) + ->method('set') + ->with('locale', $locale); + + $app->expects($this->once()) + ->method('make') + ->with( + Translator::class, + [ + 'locale' => $locale, + 'locales' => $locales, + 'localeChangeCallback' => [$serviceProvider, 'setLocale'], + ] + ) + ->willReturn($translator); + + $app->expects($this->exactly(2)) + ->method('instance') + ->withConsecutive( + [Translator::class, $translator], + ['translator', $translator] + ); + + $serviceProvider->register(); + } +} diff --git a/tests/Unit/Helpers/Translation/TranslatorTest.php b/tests/Unit/Helpers/Translation/TranslatorTest.php new file mode 100644 index 00000000..7e9c534c --- /dev/null +++ b/tests/Unit/Helpers/Translation/TranslatorTest.php @@ -0,0 +1,90 @@ + 'Tests', 'fo_OO' => 'SomeFOO']; + $locale = 'te_ST.ER-01'; + + /** @var callable|MockObject $callable */ + $callable = $this->getMockBuilder(stdClass::class) + ->setMethods(['__invoke']) + ->getMock(); + $callable->expects($this->exactly(2)) + ->method('__invoke') + ->withConsecutive(['te_ST.ER-01'], ['fo_OO']); + + $translator = new Translator($locale, $locales, $callable); + + $this->assertEquals($locales, $translator->getLocales()); + $this->assertEquals($locale, $translator->getLocale()); + + $translator->setLocale('fo_OO'); + $this->assertEquals('fo_OO', $translator->getLocale()); + + $newLocales = ['lo_RM' => 'Lorem', 'ip_SU-M' => 'Ipsum']; + $translator->setLocales($newLocales); + $this->assertEquals($newLocales, $translator->getLocales()); + + $this->assertTrue($translator->hasLocale('ip_SU-M')); + $this->assertFalse($translator->hasLocale('te_ST.ER-01')); + } + + /** + * @covers \Engelsystem\Helpers\Translation\Translator::replaceText + * @covers \Engelsystem\Helpers\Translation\Translator::translate + */ + public function testTranslate() + { + /** @var Translator|MockObject $translator */ + $translator = $this->getMockBuilder(Translator::class) + ->setConstructorArgs(['de_DE.UTF-8', ['de_DE.UTF-8' => 'Deutsch']]) + ->setMethods(['translateGettext']) + ->getMock(); + $translator->expects($this->exactly(2)) + ->method('translateGettext') + ->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\Translation\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); + } +} diff --git a/tests/Unit/Helpers/TranslationServiceProviderTest.php b/tests/Unit/Helpers/TranslationServiceProviderTest.php deleted file mode 100644 index 41c08aa5..00000000 --- a/tests/Unit/Helpers/TranslationServiceProviderTest.php +++ /dev/null @@ -1,84 +0,0 @@ -getApp(['make', 'instance', 'get']); - /** @var Config|MockObject $config */ - $config = $this->createMock(Config::class); - /** @var Session|MockObject $session */ - $session = $this->createMock(Session::class); - /** @var Translator|MockObject $translator */ - $translator = $this->createMock(Translator::class); - - /** @var TranslationServiceProvider|MockObject $serviceProvider */ - $serviceProvider = $this->getMockBuilder(TranslationServiceProvider::class) - ->setConstructorArgs([$app]) - ->setMethods(['initGettext', 'setLocale']) - ->getMock(); - - $serviceProvider->expects($this->once()) - ->method('initGettext'); - - $app->expects($this->exactly(2)) - ->method('get') - ->withConsecutive(['config'], ['session']) - ->willReturnOnConsecutiveCalls($config, $session); - - $defaultLocale = 'fo_OO'; - $locale = 'te_ST.WTF-9'; - $locales = ['fo_OO' => 'Foo', 'fo_OO.BAR' => 'Foo (Bar)', 'te_ST.WTF-9' => 'WTF\'s Testing?']; - $config->expects($this->exactly(2)) - ->method('get') - ->withConsecutive( - ['locales'], - ['default_locale'] - ) - ->willReturnOnConsecutiveCalls( - $locales, - $defaultLocale - ); - - $session->expects($this->once()) - ->method('get') - ->with('locale', $defaultLocale) - ->willReturn($locale); - $session->expects($this->once()) - ->method('set') - ->with('locale', $locale); - - $app->expects($this->once()) - ->method('make') - ->with( - Translator::class, - [ - 'locale' => $locale, - 'locales' => $locales, - 'localeChangeCallback' => [$serviceProvider, 'setLocale'], - ] - ) - ->willReturn($translator); - - $app->expects($this->exactly(2)) - ->method('instance') - ->withConsecutive( - [Translator::class, $translator], - ['translator', $translator] - ); - - $serviceProvider->register(); - } -} diff --git a/tests/Unit/Helpers/TranslatorTest.php b/tests/Unit/Helpers/TranslatorTest.php deleted file mode 100644 index 45ca769b..00000000 --- a/tests/Unit/Helpers/TranslatorTest.php +++ /dev/null @@ -1,90 +0,0 @@ - 'Tests', 'fo_OO' => 'SomeFOO']; - $locale = 'te_ST.ER-01'; - - /** @var callable|MockObject $callable */ - $callable = $this->getMockBuilder(stdClass::class) - ->setMethods(['__invoke']) - ->getMock(); - $callable->expects($this->exactly(2)) - ->method('__invoke') - ->withConsecutive(['te_ST.ER-01'], ['fo_OO']); - - $translator = new Translator($locale, $locales, $callable); - - $this->assertEquals($locales, $translator->getLocales()); - $this->assertEquals($locale, $translator->getLocale()); - - $translator->setLocale('fo_OO'); - $this->assertEquals('fo_OO', $translator->getLocale()); - - $newLocales = ['lo_RM' => 'Lorem', 'ip_SU-M' => 'Ipsum']; - $translator->setLocales($newLocales); - $this->assertEquals($newLocales, $translator->getLocales()); - - $this->assertTrue($translator->hasLocale('ip_SU-M')); - $this->assertFalse($translator->hasLocale('te_ST.ER-01')); - } - - /** - * @covers \Engelsystem\Helpers\Translator::replaceText - * @covers \Engelsystem\Helpers\Translator::translate - */ - public function testTranslate() - { - /** @var Translator|MockObject $translator */ - $translator = $this->getMockBuilder(Translator::class) - ->setConstructorArgs(['de_DE.UTF-8', ['de_DE.UTF-8' => 'Deutsch']]) - ->setMethods(['translateGettext']) - ->getMock(); - $translator->expects($this->exactly(2)) - ->method('translateGettext') - ->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); - } -} diff --git a/tests/Unit/HelpersTest.php b/tests/Unit/HelpersTest.php index ad677cb3..09362a90 100644 --- a/tests/Unit/HelpersTest.php +++ b/tests/Unit/HelpersTest.php @@ -6,7 +6,7 @@ use Engelsystem\Application; use Engelsystem\Config\Config; use Engelsystem\Container\Container; use Engelsystem\Helpers\Authenticator; -use Engelsystem\Helpers\Translator; +use Engelsystem\Helpers\Translation\Translator; use Engelsystem\Http\Request; use Engelsystem\Http\Response; use Engelsystem\Http\UrlGeneratorInterface; diff --git a/tests/Unit/Middleware/LegacyMiddlewareTest.php b/tests/Unit/Middleware/LegacyMiddlewareTest.php index f14a38ed..cce7371a 100644 --- a/tests/Unit/Middleware/LegacyMiddlewareTest.php +++ b/tests/Unit/Middleware/LegacyMiddlewareTest.php @@ -3,7 +3,7 @@ namespace Engelsystem\Test\Unit\Middleware; use Engelsystem\Helpers\Authenticator; -use Engelsystem\Helpers\Translator; +use Engelsystem\Helpers\Translation\Translator; use Engelsystem\Http\Request; use Engelsystem\Middleware\LegacyMiddleware; use PHPUnit\Framework\MockObject\MockObject; diff --git a/tests/Unit/Middleware/SetLocaleTest.php b/tests/Unit/Middleware/SetLocaleTest.php index dc68d83a..a586f6b7 100644 --- a/tests/Unit/Middleware/SetLocaleTest.php +++ b/tests/Unit/Middleware/SetLocaleTest.php @@ -2,7 +2,7 @@ namespace Engelsystem\Test\Unit\Middleware; -use Engelsystem\Helpers\Translator; +use Engelsystem\Helpers\Translation\Translator; use Engelsystem\Middleware\SetLocale; use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; diff --git a/tests/Unit/Renderer/Twig/Extensions/TranslationTest.php b/tests/Unit/Renderer/Twig/Extensions/TranslationTest.php index 18705683..0b055c44 100644 --- a/tests/Unit/Renderer/Twig/Extensions/TranslationTest.php +++ b/tests/Unit/Renderer/Twig/Extensions/TranslationTest.php @@ -2,7 +2,7 @@ namespace Engelsystem\Test\Unit\Renderer\Twig\Extensions; -use Engelsystem\Helpers\Translator; +use Engelsystem\Helpers\Translation\Translator; use Engelsystem\Renderer\Twig\Extensions\Translation; use PHPUnit\Framework\MockObject\MockObject; use Twig_Extensions_TokenParser_Trans as TranslationTokenParser; -- cgit v1.2.3-70-g09d2