Passed
Push — main ( b1fbff...0e72dc )
by Johny
02:35
created

PaymentTest::setUp()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 14
Code Lines 11

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 11
dl 0
loc 14
c 0
b 0
f 0
rs 9.9
cc 1
nc 1
nop 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace DummyGenerator\Test\Extension;
6
7
use DummyGenerator\Container\DefinitionContainer;
8
use DummyGenerator\Core\Calculator\IbanCalculator;
9
use DummyGenerator\Core\Calculator\LuhnCalculator;
10
use DummyGenerator\Core\DateTime;
11
use DummyGenerator\Core\Payment;
12
use DummyGenerator\Core\Person;
13
use DummyGenerator\Definitions\Calculator\IbanCalculatorInterface;
14
use DummyGenerator\Definitions\Calculator\LuhnCalculatorInterface;
15
use DummyGenerator\Definitions\Extension\DateTimeExtensionInterface;
16
use DummyGenerator\Definitions\Extension\PaymentExtensionInterface;
17
use DummyGenerator\Definitions\Extension\PersonExtensionInterface;
18
use DummyGenerator\Definitions\Randomizer\RandomizerInterface;
19
use DummyGenerator\Definitions\Replacer\ReplacerInterface;
20
use DummyGenerator\Definitions\Transliterator\TransliteratorInterface;
21
use DummyGenerator\DummyGenerator;
22
use DummyGenerator\Core\Randomizer\Randomizer;
23
use DummyGenerator\Core\Replacer\Replacer;
24
use DummyGenerator\Core\Transliterator\Transliterator;
25
use PHPUnit\Framework\TestCase;
26
27
class PaymentTest extends TestCase
28
{
29
    private DummyGenerator $generator;
30
31
    public function setUp(): void
32
    {
33
        parent::setUp();
34
35
        $container = new DefinitionContainer([]);
36
        $container->add(RandomizerInterface::class, Randomizer::class);
37
        $container->add(TransliteratorInterface::class, Transliterator::class);
38
        $container->add(ReplacerInterface::class, Replacer::class);
39
        $container->add(IbanCalculatorInterface::class, IbanCalculator::class);
40
        $container->add(LuhnCalculatorInterface::class, LuhnCalculator::class);
41
        $container->add(DateTimeExtensionInterface::class, DateTime::class);
42
        $container->add(PersonExtensionInterface::class, Person::class);
43
        $container->add(PaymentExtensionInterface::class, Payment::class);
44
        $this->generator = new DummyGenerator($container);
45
    }
46
47
    public function testCreditCardNumber(): void
48
    {
49
        $ccNumber = $this->generator->creditCardNumber();
50
        self::assertNotEmpty($ccNumber);
51
52
        $ccNumber = $this->generator->creditCardNumber(type: null, formatted: true, separator: '.');
53
        self::assertCount(4, explode('.', $ccNumber));
54
    }
55
56
    public function testCurrencyCode(): void
57
    {
58
        self::assertNotEmpty($this->generator->currencyCode());
59
    }
60
61
    public function testCreditCardExpirationDate(): void
62
    {
63
        self::assertEquals(5, strlen($this->generator->creditCardExpirationDate()));
64
    }
65
66
    public function testCreditCardDetails(): void
67
    {
68
        self::assertCount(4, $this->generator->creditCardDetails(valid: false));
69
    }
70
71
    public function testIban(): void
72
    {
73
        $iban = $this->generator->iban(alpha2: 'PL', prefix: 'RR');
74
75
        self::assertTrue(str_contains($iban, 'RR'));
76
        self::assertTrue(strlen($iban) > 10);
77
    }
78
79
    public function testSwiftBicNumber(): void
80
    {
81
        self::assertEquals(11, strlen($this->generator->swiftBicNumber()));
82
    }
83
}
84