Passed
Push — master ( f45c30...3fc913 )
by Robin
04:20 queued 02:45
created

CurrencyTest::multipleStatements()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 9
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 6
nc 1
nop 2
dl 0
loc 9
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace Kingsquare\Parser\Banking\Mt940\Engine;
4
5
use Kingsquare\Banking\Statement;
6
use Kingsquare\Parser\Banking\Mt940\Engine;
7
8
class SingleStatementEngine extends \Kingsquare\Parser\Banking\Mt940\Engine
9
{
10
    protected function parseStatementData()
11
    {
12
        return [$this->getRawData()];
13
    }
14
}
15
16
/**
17
 *
18
 */
19
class CurrencyTest extends \PHPUnit_Framework_TestCase
20
{
21
    /**
22
     * @dataProvider singleStatementProvider
23
     */
24
    public function singleStatement($expected, $input)
25
    {
26
        $engine = new SingleStatementEngine();
27
        $engine->loadString($input);
28
29
        $this->assertEquals($expected, current($engine->parse())->getCurrency());
30
    }
31
32
    public function singleStatementProvider()
33
    {
34
        return [
35
            [
36
                'TRY',
37
                ':20:20121030TRY
38
:25:TR/0111-01024/34690711
39
:28:12304/020
40
:60F:C121025TRY0000000000000,00
41
:61:121030CT0000000002787,29NMSCNONREF//
42
:86:001?DBS Fatura Tahsilatý - OTOMATÝK. Bayi Referans: AT27100433 Fatura?: AT27100433 Fatura No: 4300022921.
43
:61:121030CT0000000001025,99NMSCNONREF//
44
:86:001?DBS Fatura Tahsilatý - OTOMATÝK. Bayi Referans: AT27100433 Fatura?: AT27100433 Fatura No: 4300022922.
45
:61:121030CT0000000000143,97NMSCNONREF//
46
:86:001?DBS Fatura Tahsilatý - OTOMATÝK. Bayi Referans: AT27100433 Fatura?: AT27100433 Fatura No: 4300022923.
47
:61:121030DT0000000003957,25NMSCNONREF//
48
:86:001?METRO GROSMARKET BAKIRKÖY ALIÞVERÝÞ HÝZMETLERÝ TÝC.LTD.ÞTÝ., 3469?Ý TÝC.LTD.ÞTÝ., 34690711 NOLU HESAB
49
:61:121030CT0000000000969,73NMSCNONREF//
50
:86:001?DBS Fatura Tahsilatý - OTOMATÝK. Bayi Referans: AT34102273 Fatura?: AT34102273 Fatura No: 4300022926.
51
:61:121030CT0000000000657,76NMSCNONREF//
52
:86:001?DBS Fatura Tahsilatý - OTOMATÝK. Bayi Referans: AT23164460 Fatura?: AT23164460 Fatura No: 4300022918.
53
:61:121030CT0000000001005,98NMSCNONREF//
54
:86:001?DBS Fatura Tahsilatý - OTOMATÝK. Bayi Referans: AT37101369 Fatura?: AT37101369 Fatura No: 4300022927.
55
:61:121030CT0000000020667,07NMSCNONREF//
56
:86:001?DBS Fatura Tahsilatý - OTOMATÝK. Bayi Referans: AT21106594 Fatura?: AT21106594 Fatura No: 4300022917.
57
:62F:C121030TRY0000000023300,54'
58
            ],
59
            [
60
                'USD',
61
                ':20:GAL028USD11/13
62
:25:0062-00028/9004531
63
:28C:281/
64
:60F:C061113USD131738,21
65
:61:061113DD1625,NCHKNONREF
66
:86:062 TGAR 8519102 028 90045311  CekProv H
67
:61:061113DD655,NCHKNONREF
68
:86:062 TGAR 8519150 028 90045311  CekProv H
69
:61:061113CD23907,27NTRFNONREF
70
:86:00028 6695043 0000000000 DAVID KIRSCH FOR
71
:61:061113CD1489,NCHKNONREF
72
:86:134 DNZ  0395252 9960 00516210  CekProv H
73
:61:061113CD615,NTRFNONREF
74
:86:00075 9099671 4640044209 Havale - Hesapta
75
:61:061113CD2000,NMSCNONREF
76
:86:PARA YATIRMA
77
:61:061113CD5880,01NCHKNONREF
78
:86:032 TEB  6941697 0064 00233557  CekProv H
79
:61:061113CD807,96NCHKNONREF
80
:86:124 ANF  3894478 9260 00306263  CekProv H
81
:61:061113CD4193,94NTRFNONREF
82
:86:00120 9093877 8010096437 Havale - Hesapta
83
:61:061113DD1049,NTRFNONREF
84
:86:00277 9005506 3230092325 INT-HVL-galata t
85
:61:061113DD340,NTRFNONREF
86
:86:00121 9008494 0790020874 INT-HVL-
87
:61:061113DD247,NTRFNONREF
88
:86:00121 9098448 1800163747 INT-HVL-GLATA
89
:61:061113CD3087,53NTRFNONREF
90
:86:00047 9098377 1900305963 INT-HVL-GALATA T
91
:61:061113CD214,38NTRFNONREF
92
:86:00277 6201428 3230092325 INT-HVL-GALATA T
93
:61:061113CD82,6NTRFNONREF
94
:86:00277 6201428 0000000000 EKS ECZACIBASI K
95
:61:061113CD807,6NTRFNONREF
96
:86:00404 6299519 0070378702 INT-HVL-BLNoSHS0
97
:62F:C061113USD170907,5
98
:64:C061113USD170907,5'
99
            ],
100
        ];
101
    }
102
103
    /**
104
     * @dataProvider multipleStatementsProvider
105
     * @test
106
     */
107
    public function multipleStatements(array $currencies, $input)
108
    {
109
        $engine = @Engine::__getInstance($input);
110
        $this->assertEquals(
111
            $currencies,
112
            array_reduce($engine->parse(), function (array $carry, Statement $statement) {
113
                $carry[] = $statement->getCurrency();
114
                return $carry;
115
            }, [])
116
        );
117
118
    }
119
120
    /**
121
     *
122
     */
123
    public function multipleStatementsProvider()
124
    {
125
        return [
126
          'AbnSample1' => [
127
              [
128
                'EUR',
129
                'EUR',
130
                'EUR',
131
                'EUR',
132
              ], file_get_contents(__DIR__.'/Engine/Abn/sample'),
133
          ],
134
          'IngSample1' => [
135
              [
136
                'EUR',
137
              ], file_get_contents(__DIR__.'/Engine/Ing/sample'),
138
          ],
139
          'KnabSample' => [
140
              [
141
                'EUR',
142
              ], file_get_contents(__DIR__.'/Engine/Knab/sample'),
143
          ],
144
          'SpkSample' => [
145
              [
146
                'EUR',
147
                'EUR',
148
                'EUR',
149
                'EUR',
150
              ], file_get_contents(__DIR__.'/Engine/Spk/sample'),
151
          ],
152
          'Triodos' => [
153
              [
154
                'EUR',
155
                'EUR',
156
              ], file_get_contents(__DIR__.'/Engine/Triodos/sample'),
157
          ],
158
          'RaboSample1' => [
159
              [
160
                'EUR',
161
                'EUR',
162
                'EUR',
163
                'EUR',
164
                'EUR',
165
                'EUR',
166
                'EUR',
167
                'EUR',
168
                'EUR',
169
                'EUR',
170
                'EUR',
171
                'EUR',
172
                'USD',
173
                'USD',
174
                'USD',
175
                'EUR',
176
                'EUR',
177
                'EUR',
178
                'EUR',
179
                'EUR',
180
                'EUR',
181
                'EUR',
182
                'EUR',
183
                'EUR',
184
                'JPY',
185
                'JPY',
186
                'JPY',
187
                'USD',
188
                'USD',
189
                'USD',
190
                'EUR',
191
                'EUR',
192
                'EUR',
193
                'EUR',
194
                'EUR',
195
                'EUR',
196
                'EUR',
197
                'EUR',
198
                'EUR',
199
              ], file_get_contents(__DIR__.'/Engine/Rabo/sample'),
200
          ],
201
202
        ];
203
    }
204
}
205