ModelLocatorTest::testGetInvalidAlias()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 2
nc 1
nop 0
dl 0
loc 4
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace Nip\Records\Tests\Locator;
4
5
use Nip\Records\Locator\Exceptions\InvalidModelException;
6
use Nip\Records\Locator\ModelLocator;
7
use Nip\Records\Tests\AbstractTest;
8
use Nip\Records\Tests\Fixtures\Records\Books\Books;
9
use Nip\Records\Tests\Fixtures\Records\Books\Chapters\BooksChapters;
10
11
/**
12
 * Class ModelLocatorTest
13
 * @package Nip\Records\Tests
14
 */
15
class ModelLocatorTest extends AbstractTest
16
{
17
    public function testGetClassFullName()
18
    {
19
        $manager = ModelLocator::get(Books::class);
20
        self::assertInstanceOf(Books::class, $manager);
21
    }
22
23
    public function testGetInvalidAlias()
24
    {
25
        self::expectException(InvalidModelException::class);
0 ignored issues
show
Bug Best Practice introduced by
The method PHPUnit\Framework\TestCase::expectException() is not static, but was called statically. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

25
        self::/** @scrutinizer ignore-call */ 
26
              expectException(InvalidModelException::class);
Loading history...
26
        ModelLocator::get('ClassNotExist');
27
    }
28
29
    public function testGetClassFromConfigNamespace()
30
    {
31
        ModelLocator::instance()->getConfiguration()->addNamespace('Nip\Records\Tests\Fixtures\Records');
32
33
        $manager = ModelLocator::get('Books');
34
        self::assertInstanceOf(Books::class, $manager);
35
36
        $manager = ModelLocator::get('Books\Books');
37
        self::assertInstanceOf(Books::class, $manager);
38
        $manager = ModelLocator::get('books');
39
        self::assertInstanceOf(Books::class, $manager);
40
    }
41
42
    public function testGetClassFromModelRegistry()
43
    {
44
        ModelLocator::instance()->getConfiguration()->addNamespace('Nip\Records\Tests\Fixtures\Records');
45
46
        $manager = ModelLocator::get('Books');
47
        self::assertInstanceOf(Books::class, $manager);
48
        $manager->singleton = 'valid';
0 ignored issues
show
Bug introduced by
The property singleton does not seem to exist on Nip\Records\AbstractModels\RecordManager.
Loading history...
49
        self::assertEquals('valid', $manager->singleton);
50
51
        $manager = ModelLocator::get('Books\Books');
52
        self::assertInstanceOf(Books::class, $manager);
53
        self::assertEquals('valid', $manager->singleton);
54
    }
55
56
    public function testGetModelWithFolderAndComposeName()
57
    {
58
        ModelLocator::instance()->getConfiguration()->addNamespace('Nip\Records\Tests\Fixtures\Records');
59
60
        $manager = ModelLocator::get('books-chapters');
61
        self::assertInstanceOf(BooksChapters::class, $manager);
62
    }
63
}
64