summaryrefslogtreecommitdiff
path: root/tests/Unit/Helpers/Translation/TranslationServiceProviderTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'tests/Unit/Helpers/Translation/TranslationServiceProviderTest.php')
-rw-r--r--tests/Unit/Helpers/Translation/TranslationServiceProviderTest.php40
1 files changed, 30 insertions, 10 deletions
diff --git a/tests/Unit/Helpers/Translation/TranslationServiceProviderTest.php b/tests/Unit/Helpers/Translation/TranslationServiceProviderTest.php
index 91307bdd..e55fdf02 100644
--- a/tests/Unit/Helpers/Translation/TranslationServiceProviderTest.php
+++ b/tests/Unit/Helpers/Translation/TranslationServiceProviderTest.php
@@ -12,7 +12,7 @@ use Symfony\Component\HttpFoundation\Session\Session;
class TranslationServiceProviderTest extends ServiceProviderTest
{
/**
- * @covers \Engelsystem\Helpers\Translation\TranslationServiceProvider::register()
+ * @covers \Engelsystem\Helpers\Translation\TranslationServiceProvider::register
*/
public function testRegister(): void
{
@@ -21,7 +21,7 @@ class TranslationServiceProviderTest extends ServiceProviderTest
$locales = ['fo_OO' => 'Foo', 'fo_OO.BAR' => 'Foo (Bar)', 'te_ST.WTF-9' => 'WTF\'s Testing?'];
$config = new Config(['locales' => $locales, 'default_locale' => $defaultLocale]);
- $app = $this->getApp(['make', 'instance', 'get']);
+ $app = $this->getApp(['make', 'singleton', 'alias', 'get']);
/** @var Session|MockObject $session */
$session = $this->createMock(Session::class);
/** @var Translator|MockObject $translator */
@@ -30,7 +30,7 @@ class TranslationServiceProviderTest extends ServiceProviderTest
/** @var TranslationServiceProvider|MockObject $serviceProvider */
$serviceProvider = $this->getMockBuilder(TranslationServiceProvider::class)
->setConstructorArgs([$app])
- ->setMethods(['setLocale'])
+ ->onlyMethods(['setLocale'])
->getMock();
$app->expects($this->exactly(2))
@@ -60,18 +60,22 @@ class TranslationServiceProviderTest extends ServiceProviderTest
)
->willReturn($translator);
- $app->expects($this->exactly(2))
- ->method('instance')
- ->withConsecutive(
- [Translator::class, $translator],
- ['translator', $translator]
- );
+ $app->expects($this->once())
+ ->method('singleton')
+ ->willReturnCallback(function (string $abstract, callable $callback) use ($translator) {
+ $this->assertEquals(Translator::class, $abstract);
+ $this->assertEquals($translator, $callback());
+ });
+
+ $app->expects($this->once())
+ ->method('alias')
+ ->with(Translator::class, 'translator');
$serviceProvider->register();
}
/**
- * @covers \Engelsystem\Helpers\Translation\TranslationServiceProvider::getTranslator()
+ * @covers \Engelsystem\Helpers\Translation\TranslationServiceProvider::getTranslator
*/
public function testGetTranslator(): void
{
@@ -87,4 +91,20 @@ class TranslationServiceProviderTest extends ServiceProviderTest
// Retry from cache
$serviceProvider->getTranslator('fo_OO');
}
+
+ /**
+ * @covers \Engelsystem\Helpers\Translation\TranslationServiceProvider::getTranslator
+ * @covers \Engelsystem\Helpers\Translation\TranslationServiceProvider::getFile
+ */
+ public function testGetTranslatorFromPo(): void
+ {
+ $app = $this->getApp(['get']);
+ $this->setExpects($app, 'get', ['path.lang'], __DIR__ . '/Assets');
+
+ $serviceProvider = new TranslationServiceProvider($app);
+
+ // Get translator using a .po file
+ $translator = $serviceProvider->getTranslator('ba_RR');
+ $this->assertEquals('B Arr!', $translator->gettext('foo.bar'));
+ }
}