ChangeRepositoryTest   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 32
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 2
eloc 19
dl 0
loc 32
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A testGetOpenChange() 0 22 1
A setUp() 0 4 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace ApplicationTest\Repository;
6
7
use Application\Enum\ChangeType;
8
use Application\Enum\Site;
9
use Application\Model\Card;
10
use Application\Model\Change;
11
use Application\Model\User;
12
use Application\Repository\ChangeRepository;
13
use Application\Repository\UserRepository;
14
15
class ChangeRepositoryTest extends AbstractRepositoryTest
16
{
17
    private ChangeRepository $repository;
18
19
    protected function setUp(): void
20
    {
21
        parent::setUp();
22
        $this->repository = _em()->getRepository(Change::class);
23
    }
24
25
    public function testGetOpenChange(): void
26
    {
27
        /** @var UserRepository $userRepository */
28
        $userRepository = _em()->getRepository(User::class);
29
        User::setCurrent($userRepository->getOneByLogin('administrator', Site::Dilps));
30
        $request = '';
31
        $creationSuggestion = _em()->getReference(Card::class, 6001);
32
        $updateSuggestion = _em()->getReference(Card::class, 6002);
33
        $deletionSuggestion = _em()->getReference(Card::class, 6000);
34
35
        // Can retrieve existing one
36
        self::assertNotNull($this->repository->getOrCreate(ChangeType::Create, $creationSuggestion, $request, Site::Dilps)->getId());
0 ignored issues
show
Bug introduced by
It seems like $creationSuggestion can also be of type null; however, parameter $card of Application\Repository\C...pository::getOrCreate() does only seem to accept Application\Model\Card, maybe add an additional type check? ( Ignorable by Annotation )

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

36
        self::assertNotNull($this->repository->getOrCreate(ChangeType::Create, /** @scrutinizer ignore-type */ $creationSuggestion, $request, Site::Dilps)->getId());
Loading history...
37
        self::assertNotNull($this->repository->getOrCreate(ChangeType::Update, $updateSuggestion, $request, Site::Dilps)->getId());
38
        self::assertNotNull($this->repository->getOrCreate(ChangeType::Delete, $deletionSuggestion, $request, Site::Dilps)->getId());
39
40
        // Can create new one
41
        self::assertNull($this->repository->getOrCreate(ChangeType::Update, $creationSuggestion, $request, Site::Dilps)->getId());
42
        self::assertNull($this->repository->getOrCreate(ChangeType::Delete, $creationSuggestion, $request, Site::Dilps)->getId());
43
        self::assertNull($this->repository->getOrCreate(ChangeType::Create, $updateSuggestion, $request, Site::Dilps)->getId());
44
        self::assertNull($this->repository->getOrCreate(ChangeType::Delete, $updateSuggestion, $request, Site::Dilps)->getId());
45
        self::assertNull($this->repository->getOrCreate(ChangeType::Create, $deletionSuggestion, $request, Site::Dilps)->getId());
46
        self::assertNull($this->repository->getOrCreate(ChangeType::Update, $deletionSuggestion, $request, Site::Dilps)->getId());
47
    }
48
}
49