Failed Conditions
Push — master ( 51347b...4787ce )
by Adrien
08:37
created

TestWithTransactionAndUser::tearDown()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 9
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 4
c 0
b 0
f 0
nc 1
nop 0
dl 0
loc 9
rs 10
1
<?php
2
3
declare(strict_types=1);
4
5
namespace ApplicationTest\Traits;
6
7
use Application\Model\Account;
8
use Application\Model\User;
9
use Application\Repository\AccountRepository;
10
use Ecodev\Felix\Testing\Traits\TestWithTransaction;
11
12
/**
13
 * Allow to run test within a database transaction, so database will be unchanged after test
14
 */
15
trait TestWithTransactionAndUser
16
{
17
    use TestWithTransaction {
18
        setUp as traitSetupWithTransaction;
19
        tearDown as traitTearDownWithTransaction;
20
    }
21
22
    /**
23
     * Start transaction
24
     */
25
    public function setUp(): void
26
    {
27
        $this->traitSetupWithTransaction();
28
        User::setCurrent(null);
29
    }
30
31
    /**
32
     * Cancel transaction, to undo all changes made
33
     */
34
    public function tearDown(): void
35
    {
36
        User::setCurrent(null);
37
38
        /** @var AccountRepository $accountRepository */
39
        $accountRepository = $this->getEntityManager()->getRepository(Account::class);
40
        $accountRepository->clearCache();
41
42
        $this->traitTearDownWithTransaction();
43
    }
44
}
45