Completed
Push — master ( 3ac846...67b859 )
by Adrien
07:43
created

TransactionLineTest::testDebitAccountRelation()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 22
Code Lines 14

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 14
nc 1
nop 0
dl 0
loc 22
rs 9.7998
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace ApplicationTest\Model;
6
7
use Application\Model\Account;
8
use Application\Model\Transaction;
9
use Application\Model\TransactionLine;
10
use PHPUnit\Framework\TestCase;
11
12
class TransactionLineTest extends TestCase
13
{
14
    public function testTransactionRelation(): void
15
    {
16
        $transaction1 = new Transaction();
17
        self::assertCount(0, $transaction1->getTransactionLines());
18
19
        $transactionLine1 = new TransactionLine();
20
        $transactionLine2 = new TransactionLine();
21
        $transactionLine1->setTransaction($transaction1);
22
        $transactionLine2->setTransaction($transaction1);
23
24
        self::assertCount(2, $transaction1->getTransactionLines());
25
26
        $transaction2 = new Transaction();
27
        $transactionLine2->setTransaction($transaction2);
28
29
        self::assertCount(1, $transaction1->getTransactionLines());
30
        self::assertCount(1, $transaction2->getTransactionLines());
31
    }
32
33
    public function testDebitAccountRelation(): void
34
    {
35
        $account1 = new Account();
36
        self::assertCount(0, $account1->getDebitTransactionLines());
37
38
        $transactionLine1 = new TransactionLine();
39
        $transactionLine2 = new TransactionLine();
40
        $transactionLine1->setDebit($account1);
41
        $transactionLine2->setDebit($account1);
42
43
        self::assertCount(2, $account1->getDebitTransactionLines());
44
45
        $account2 = new Account();
46
        $transactionLine2->setDebit($account2);
47
48
        self::assertCount(1, $account1->getDebitTransactionLines());
49
        self::assertCount(1, $account2->getDebitTransactionLines());
50
51
        $transactionLine1->setDebit(null);
52
53
        self::assertCount(0, $account1->getDebitTransactionLines());
54
        self::assertCount(1, $account2->getDebitTransactionLines());
55
    }
56
57
    public function testCreditAccountRelation(): void
58
    {
59
        $account1 = new Account();
60
        self::assertCount(0, $account1->getCreditTransactionLines());
61
62
        $transactionLine1 = new TransactionLine();
63
        $transactionLine2 = new TransactionLine();
64
        $transactionLine1->setCredit($account1);
65
        $transactionLine2->setCredit($account1);
66
67
        self::assertCount(2, $account1->getCreditTransactionLines());
68
69
        $account2 = new Account();
70
        $transactionLine2->setCredit($account2);
71
72
        self::assertCount(1, $account1->getCreditTransactionLines());
73
        self::assertCount(1, $account2->getCreditTransactionLines());
74
75
        $transactionLine1->setCredit(null);
76
77
        self::assertCount(0, $account1->getCreditTransactionLines());
78
        self::assertCount(1, $account2->getCreditTransactionLines());
79
    }
80
}
81