Failed Conditions
Push — master ( 5fbadf...673c47 )
by Adrien
07:14
created

testFindByDebitOrCredit()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 34
Code Lines 25

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 25
nc 1
nop 0
dl 0
loc 34
rs 9.52
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace ApplicationTest\Repository;
6
7
use Application\Model\Account;
8
use Application\Model\Transaction;
9
use Application\Model\TransactionLine;
10
use Cake\Chronos\Date;
11
12
/**
13
 * @group Repository
14
 */
15
class TransactionLineRepositoryTest extends AbstractRepositoryTest
16
{
17
    public function testFindByDebitOrCredit(): void
18
    {
19
        $account = _em()->getReference(Account::class, 10096);
20
        self::assertCount(4, $account->getTransactionLines(), 'Account must have 4 transactions');
21
22
        $transaction = new Transaction();
23
        $transaction->setName('foo');
24
        $transaction->setTransactionDate(Date::today());
25
        _em()->persist($transaction);
26
27
        $transactionLine = new TransactionLine();
28
        _em()->persist($transactionLine);
29
        $transactionLine->setTransaction($transaction);
30
        $transactionLine->setTransactionDate(Date::today());
31
        $transactionLine->setDebit($account);
32
        $transactionLine->setBalance('20');
33
34
        $transactionLine2 = new TransactionLine();
35
        _em()->persist($transactionLine2);
36
        $transactionLine2->setTransaction($transaction);
37
        $transactionLine2->setTransactionDate(Date::today());
38
        $transactionLine2->setCredit($account);
39
        $transactionLine2->setBalance('20');
40
41
        _em()->flush();
42
43
        self::assertCount(6, $account->getTransactionLines(), 'Account must have two new transactions');
44
45
        $otherAccount = _em()->getReference(Account::class, 10035);
46
        $transactionLine->setDebit($otherAccount);
47
        _em()->flush();
48
49
        self::assertCount(5, $account->getTransactionLines(), 'Original account with one less transaction');
50
        self::assertSame($transactionLine->getDebit(), $otherAccount);
51
    }
52
}
53