SingleStatementEngine::parseStatementData()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

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