ParseTest   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 51
Duplicated Lines 0 %

Importance

Changes 2
Bugs 0 Features 1
Metric Value
eloc 25
dl 0
loc 51
rs 10
c 2
b 0
f 1
wmc 5

5 Methods

Rating   Name   Duplication   Size   Complexity  
A testParsesAllFoundStatements() 0 9 1
A testHasTheRightAmountOfTransactions() 0 11 1
A setUp() 0 4 1
A testParseStatementBank() 0 5 1
A testParseTransactionDebitCredit() 0 7 1
1
<?php
2
3
namespace Kingsquare\Parser\Banking\Mt940\Engine\Spk;
4
5
use Kingsquare\Banking\Statement;
6
use Kingsquare\Parser\Banking\Mt940\Engine\Spk;
7
8
/**
9
 *
10
 */
11
class ParseTest extends \PHPUnit_Framework_TestCase
12
{
13
    /**
14
     * @var Spk
15
     */
16
    private $engine;
17
18
    protected function setUp()
19
    {
20
        $this->engine = new Spk();
21
        $this->engine->loadString(file_get_contents(__DIR__.'/sample'));
22
    }
23
24
    public function testParseStatementBank()
25
    {
26
        $method = new \ReflectionMethod($this->engine, 'parseStatementBank');
27
        $method->setAccessible(true);
28
        $this->assertEquals('Spk', $method->invoke($this->engine));
29
    }
30
31
    public function testHasTheRightAmountOfTransactions()
32
    {
33
        $statements = $this->engine->parse();
34
        $this->assertCount(4, $statements);
35
36
        $transactions = array_map(static function(Statement $statement) {
37
            return $statement->getTransactions();
38
        }, $statements);
39
        $tranactions = call_user_func_array('array_merge', $transactions);
40
41
        $this->assertCount(10, $tranactions);
42
    }
43
44
    public function testParsesAllFoundStatements()
45
    {
46
        $statements = $this->engine->parse();
47
        $first = $statements[0];
48
        $last = end($statements);
49
        $this->assertEquals('17-02-2010', $first->getStartTimestamp('d-m-Y'));
50
        $this->assertEquals('17-02-2010', $first->getEndTimestamp('d-m-Y'));
51
        $this->assertEquals('18-02-2010', $last->getStartTimestamp('d-m-Y'));
52
        $this->assertEquals('18-02-2010', $last->getEndTimestamp('d-m-Y'));
53
    }
54
55
    public function testParseTransactionDebitCredit()
56
    {
57
        $statements = $this->engine->parse();
58
        $transactions = reset($statements)->getTransactions();
59
        $firstTransaction = reset($transactions);
60
61
        $this->assertEquals('C', $firstTransaction->getDebitCredit());
62
    }
63
}
64