Passed
Push — main ( 9c59f2...5fac80 )
by Peter
02:52
created

I18nBootstrapperTest::tearDown()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 1
c 1
b 0
f 0
nc 1
nop 0
dl 0
loc 3
rs 10
1
<?php
2
3
namespace AbterPhp\Framework\Bootstrappers\I18n;
4
5
use AbterPhp\Framework\Constant\Env;
6
use AbterPhp\Framework\Environments\Environment;
7
use AbterPhp\Framework\I18n\ITranslator;
8
use AbterPhp\Framework\I18n\Translator;
9
use Opulence\Ioc\Container;
10
use Opulence\Sessions\ISession;
11
use Opulence\Views\Compilers\Fortune\ITranspiler;
12
use org\bovigo\vfs\vfsStream;
13
use org\bovigo\vfs\vfsStreamDirectory;
14
use PHPUnit\Framework\TestCase;
15
16
class I18nBootstrapperTest extends TestCase
17
{
18
    private const BASE_PATH = 'exampleDir';
19
20
    /** @var I18nBootstrapper */
21
    protected I18nBootstrapper $sut;
22
23
    protected vfsStreamDirectory $root;
24
25
    public function setUp(): void
26
    {
27
        $this->root = vfsStream::setup(static::BASE_PATH);
28
29
        $this->sut = new I18nBootstrapper();
30
    }
31
32
    public function tearDown(): void
33
    {
34
        Environment::unsetVar(Env::DEFAULT_LANGUAGE);
35
    }
36
37
    public function testRegisterBindings()
38
    {
39
        Environment::setVar(Env::DEFAULT_LANGUAGE, 'en');
40
41
        $sessionMock    = $this->getMockBuilder(ISession::class)->getMock();
42
        $translatorMock = $this->getMockBuilder(Translator::class)->disableOriginalConstructor()->getMock();
43
        $transpilerMock = $this->getMockBuilder(ITranspiler::class)->getMock();
44
45
        $container = new Container();
46
        $container->bindInstance(ISession::class, $sessionMock);
47
        $container->bindInstance(Translator::class, $translatorMock);
48
        $container->bindInstance(ITranspiler::class, $transpilerMock);
49
50
        $resourcePaths = [vfsStream::url(static::BASE_PATH), '/tmp/dir-does-not-exist-ever-299182'];
51
52
        $this->sut->setResourcePaths($resourcePaths);
53
54
        $this->sut->registerBindings($container);
55
56
        $actual = $container->resolve(Translator::class);
57
        $this->assertInstanceOf(Translator::class, $actual);
58
59
        $actual = $container->resolve(ITranslator::class);
60
        $this->assertInstanceOf(ITranslator::class, $actual);
61
    }
62
}
63