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

SepaTest   A

Complexity

Total Complexity 7

Size/Duplication

Total Lines 57
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 27
dl 0
loc 57
rs 10
c 0
b 0
f 0
wmc 7
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
9
/**
10
 * Sepa test case.
11
 */
12
class SepaTest extends TestCase
13
{
14
    public function testInit()
15
    {
16
        Sepa::reset();
17
        $strBIC = 'PARBFRPP757';
18
        $this->expectError();
19
        Sepa::validateBIC($strBIC);
20
    }
21
22
    public function testSetValidationLevel()
23
    {
24
        Sepa::init();
25
        $strBIC = 'PARBFRPP757';
26
        $this->assertSame(Sepa::validateBIC($strBIC), 0);
27
        $strBIC = 'PARBUSPP757';
28
        $this->assertSame(Sepa::validateBIC($strBIC), Sepa::ERR_BIC_INVALID_CNTRY);
29
        Sepa::setValidationLevel(Sepa::V_IGNORE_MISSING_CNTRY);
30
        $this->assertSame(Sepa::validateBIC($strBIC), 0);
31
    }
32
33
    // Tests for the static methods of trait SepaHelper
34
    public function testCreateUID()
35
    {
36
        // $this->assertSame(preg_match('/^([0-9]){8}-([0-9]){4}-([0-9]){4}-([0-9]){12}?$/', Sepa::createUID()), 0);
37
        $this->assertMatchesRegularExpression('/^([0-9A-F]){8}-([0-9A-F]){4}-([0-9A-F]){4}-([0-9A-F]){12}?$/', Sepa::createUID());
38
39
    }
40
41
    public function testReplaceSpecialChars()
42
    {
43
        $this->assertSame(Sepa::replaceSpecialChars('äöüßÄÖÜ'), 'aeoeuessAeOeUe');
44
    }
45
46
    public function testValidString()
47
    {
48
        $this->assertSame(Sepa::validString('abcdefghijklmnopqrstuvwxyz12345678901234', Sepa::MAX35), 'abcdefghijklmnopqrstuvwxyz123456789');
49
        $this->assertSame(Sepa::validString('abcdefghijklmnopqrstuvwxyz12345678901234', Sepa::MAX1025), 'abcdefghijklmnopqrstuvwxyz12345678901234');
50
    }
51
52
    public function testIsTarget2Day()
53
    {
54
        $dt = mktime(0, 0, 0, 12, 25, 2024); // 1'st chrismasday
55
        $this->assertTrue(Sepa::isTarget2Day($dt));
56
        $dt = mktime(0, 0, 0, 12, 16, 2020); // Wednesday...
57
        $this->assertFalse(Sepa::isTarget2Day($dt));
58
        $dt = mktime(0, 0, 0, 6, 21, 2020); // Sunday...
59
        $this->assertTrue(Sepa::isTarget2Day($dt));
60
    }
61
62
    public function testCalcCollectionDate()
63
    {
64
        $dt = mktime(0, 0, 0, 6, 17, 2020); // Wednesday
65
        $dtCalc = Sepa::calcCollectionDate(5, $dt);
66
        $this->assertSame($dtCalc, mktime(0, 0, 0, 6, 24, 2020));
67
        $dtCalc = Sepa::calcCollectionDate(5);
68
        $this->assertTrue($dtCalc >= mktime() + 5 * 86400);
69
    }
70
}
71
72