Passed
Push — master ( 1eeb90...3a73e7 )
by Stefan
01:29
created

SepaCntryValidationCHTest   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 38
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 21
dl 0
loc 38
rs 10
c 0
b 0
f 0
wmc 4
1
<?php
2
declare(strict_types=1);
3
4
namespace SKien\Test\Sepa;
5
6
use PHPUnit\Framework\TestCase;
7
use SKien\Sepa\Sepa;
8
use SKien\Sepa\CntryValidation\SepaCntryValidation;
9
use SKien\Sepa\CntryValidation\SepaCntryValidationCH;
10
11
/**
12
 * SepaCntryValidationCH test case.
13
 */
14
class SepaCntryValidationCHTest extends TestCase
15
{
16
    /** @var SepaCntryValidation     */
17
    private $oValidation;
18
19
    public function test__construct()
20
    {
21
        $this->oValidation = new SepaCntryValidationCH('CH');
22
        $this->expectError();
23
        $this->oValidation = new SepaCntryValidationCH('DE');
24
    }
25
26
    public function testValidateIBAN()
27
    {
28
        $this->oValidation = new SepaCntryValidationCH('CH');
29
        $this->assertSame($this->oValidation->validateIBAN('CH18 0483 5029 8829 8100 0'), 0);
30
        $this->assertSame($this->oValidation->validateIBAN('CH11 0483 5029 8829 8100 0'), Sepa::ERR_IBAN_CHECKSUM);
31
        $this->assertSame($this->oValidation->validateIBAN('CH18 0483 5029 8829 100 0'), Sepa::ERR_IBAN_INVALID_LENGTH);
32
        $this->assertSame($this->oValidation->validateIBAN('DE18 0483 5029 8829 8100 0'), Sepa::ERR_IBAN_INVALID_CNTRY);
33
        $this->assertSame($this->oValidation->validateIBAN('CH18 0483 5029 882c 8100 0'), Sepa::ERR_IBAN_INVALID_SIGN);
34
    }
35
36
    public function testValidateBIC()
37
    {
38
        $this->oValidation = new SepaCntryValidationCH('CH');
39
        $this->assertSame($this->oValidation->validateBIC('CRESCHZZ80A'), 0);
40
        $this->assertSame($this->oValidation->validateBIC('CRESDHZZ80A'), Sepa::ERR_BIC_INVALID_CNTRY);
41
        $this->assertSame($this->oValidation->validateBIC('CR1SCHZZ80A'), Sepa::ERR_BIC_INVALID);
42
    }
43
44
    public function testValidateCI()
45
    {
46
        $this->oValidation = new SepaCntryValidationCH('CH');
47
        $this->assertSame($this->oValidation->validateCI('CH51 ZZZ 12345678901'), 0);
48
        $this->assertSame($this->oValidation->validateCI('CH71 ZZZ 12345678901'), Sepa::ERR_CI_CHECKSUM);
49
        $this->assertSame($this->oValidation->validateCI('CH51 ZZZ 1345678901'), Sepa::ERR_CI_INVALID_LENGTH);
50
        $this->assertSame($this->oValidation->validateCI('SH51 ZZZ 12345678901'), Sepa::ERR_CI_INVALID_CNTRY);
51
        $this->assertSame($this->oValidation->validateCI('CH5x ZZZ 12345678901'), Sepa::ERR_CI_INVALID_SIGN);
52
    }
53
}
54
55