Passed
Push — feature/support-php-8.2 ( 7887cc...999d53 )
by Chema
04:26
created

LocatorTest::test_get_concrete_class()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 11
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 6
nc 1
nop 0
dl 0
loc 11
rs 10
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace GacelaTest\Unit\Framework\Container;
6
7
use Gacela\Framework\Container\Locator;
8
use GacelaTest\Fixtures\StringValue;
9
use PHPUnit\Framework\TestCase;
10
11
final class LocatorTest extends TestCase
12
{
13
    private Locator $locator;
14
15
    public function setUp(): void
16
    {
17
        Locator::resetInstance();
18
        $this->locator = Locator::getInstance();
19
    }
20
21
    public function tearDown(): void
22
    {
23
        Locator::resetInstance();
24
    }
25
26
    public function test_get_concrete_class(): void
27
    {
28
        /** @var StringValue $stringValue */
29
        $stringValue = $this->locator->get(StringValue::class);
30
        self::assertInstanceOf(StringValue::class, $stringValue);
31
        self::assertSame('', $stringValue->value());
32
        $stringValue->setValue('updated value');
33
34
        /** @var StringValue $stringValue2 */
35
        $stringValue2 = $this->locator->get(StringValue::class);
36
        self::assertSame('updated value', $stringValue2->value());
37
    }
38
39
    public function test_get_null_from_non_existing_class(): void
40
    {
41
        /** @var null $nullValue */
42
        $nullValue = $this->locator->get('NonExistingClass');
43
        self::assertNull($nullValue);
44
    }
45
}
46