Passed
Pull Request — master (#141)
by
unknown
11:36
created

EntryIteratorTest   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 59
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 37
dl 0
loc 59
rs 10
c 1
b 0
f 0
wmc 5
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Genkgo\TestCamt\Unit;
6
7
use DOMDocument;
8
use Genkgo\Camt\Camt053\MessageFormat;
9
use Genkgo\Camt\DTO;
10
use Genkgo\Camt\DTO\Message;
11
use PHPUnit\Framework;
12
13
class EntryIteratorTest extends Framework\TestCase
14
{
15
    protected function getDefaultMessage(): Message
16
    {
17
        $dom = new DOMDocument('1.0', 'UTF-8');
18
        $dom->load('test/data/camt053.v2.multi.statement.xml');
19
20
        return (new MessageFormat\V02())->getDecoder()->decode($dom);
21
    }
22
23
    public function testMultipleStatements(): void
24
    {
25
        $message = $this->getDefaultMessage();
26
        $entries = $message->getEntries();
27
28
        $item = 0;
29
        foreach ($entries as $entry) {
30
            // @var DTO\Entry $entry
31
            if ($item === 0) {
32
                self::assertEquals(885, $entry->getAmount()->getAmount());
33
                self::assertEquals(
34
                    'Transaction Description 1',
35
                    $entry->getTransactionDetail()->getRemittanceInformation()->getMessage()
36
                );
37
                self::assertEquals(
38
                    'Company Name 1',
39
                    $entry->getTransactionDetail()->getRelatedParty()->getRelatedPartyType()->getName()
40
                );
41
                self::assertEquals(
42
                    'NL',
43
                    $entry->getTransactionDetail()->getRelatedParty()->getRelatedPartyType()->getAddress()->getCountry()
44
                );
45
                self::assertEquals(
46
                    '000000001',
47
                    $entry->getTransactionDetail()->getReference()->getEndToEndId()
48
                );
49
            }
50
51
            if ($item === 1) {
52
                self::assertEquals(-700, $entry->getAmount()->getAmount());
53
                self::assertEquals(
54
                    'Transaction Description 2',
55
                    $entry->getTransactionDetail()->getRemittanceInformation()->getMessage()
56
                );
57
                self::assertEquals(
58
                    'Company Name 2',
59
                    $entry->getTransactionDetail()->getRelatedParty()->getRelatedPartyType()->getName()
60
                );
61
                self::assertEquals(
62
                    'FR',
63
                    $entry->getTransactionDetail()->getRelatedParty()->getRelatedPartyType()->getAddress()->getCountry()
64
                );
65
                self::assertEquals(
66
                    '000000002',
67
                    $entry->getTransactionDetail()->getReference()->getEndToEndId()
68
                );
69
            }
70
71
            ++$item;
72
        }
73
    }
74
}
75