alltube/tests/LocaleManagerTest.php

103 lines
2.2 KiB
PHP
Raw Normal View History

<?php
/**
* LocaleManagerTest class.
*/
namespace Alltube\Test;
use Alltube\Factory\SessionFactory;
use Alltube\Locale;
use Alltube\LocaleManager;
use Slim\Container;
/**
* Unit tests for the LocaleManagerTest class.
*/
class LocaleManagerTest extends BaseTest
{
/**
* LocaleManager class instance.
*
* @var LocaleManager
*/
private $localeManager;
/**
* Prepare tests.
*/
2019-11-30 13:08:18 +00:00
protected function setUp(): void
{
$_SESSION[LocaleManager::class]['locale'] = 'foo_BAR';
$this->localeManager = new LocaleManager(SessionFactory::create(new Container()));
}
2017-05-30 22:56:53 +00:00
/**
* Unset locale after each test.
2017-05-30 22:56:53 +00:00
*
* @return void
*/
2019-11-30 13:08:18 +00:00
protected function tearDown(): void
2017-05-30 22:56:53 +00:00
{
$this->localeManager->unsetLocale();
2017-05-30 22:56:53 +00:00
}
/**
* Test the getSupportedLocales function.
*
* @return void
*/
public function testGetSupportedLocales()
{
foreach ($this->localeManager->getSupportedLocales() as $locale) {
$this->assertInstanceOf(Locale::class, $locale);
}
}
/**
* Test the getLocale function.
*
* @return void
*/
public function testGetLocale()
{
2017-10-26 08:55:29 +00:00
$this->assertEquals(new Locale('foo_BAR'), $this->localeManager->getLocale());
}
/**
* Test the setLocale function.
*
* @return void
*/
public function testSetLocale()
{
$this->localeManager->setLocale(new Locale('foo_BAR'));
$locale = $this->localeManager->getLocale();
$this->assertInstanceOf(Locale::class, $locale);
$this->assertEquals('foo_BAR', (string) $locale);
}
/**
* Test the unsetLocale function.
*
* @return void
*/
public function testUnsetLocale()
{
$this->localeManager->unsetLocale();
$this->assertNull($this->localeManager->getLocale());
}
2017-11-11 22:00:53 +00:00
/**
* Test that the environment is correctly set up.
*
* @return void
*/
public function testEnv()
{
2019-11-27 23:04:05 +00:00
putenv('LANG=foo_BAR');
2017-11-11 22:00:53 +00:00
$this->localeManager->setLocale(new Locale('foo_BAR'));
$this->assertEquals('foo_BAR', getenv('LANG'));
}
}