Passed
Branch master (84c5d9)
by Kauri
02:53
created

PaymentsScheduleTest::testPaymentsSchedule()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 14
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 14
rs 9.4285
c 0
b 0
f 0
cc 2
eloc 8
nc 2
nop 1
1
<?php
2
3
namespace Kauri\Loan\Test;
4
5
6
use Kauri\Loan\PaymentScheduleConfig;
7
use Kauri\Loan\PaymentSchedule;
8
use Kauri\Loan\PaymentScheduleFactory;
9
use PHPUnit\Framework\TestCase;
10
11
class PaymentsScheduleTest extends TestCase
12
{
13
    /**
14
     * @dataProvider datesProvider
15
     * @param $paymentDate
16
     */
17
    public function testPaymentsSchedule($paymentDate)
18
    {
19
        $startDate = new \DateTime();
20
        $config = new PaymentScheduleConfig(3, $startDate, 'P1D');
21
22
        $paymentSchedule = new PaymentSchedule($config);
23
        $paymentSchedule->add($paymentDate);
24
25
        $this->assertEquals(1, $paymentSchedule->getNoOfPayments());
26
27
        foreach ($paymentSchedule->getPaymentDates() as $date) {
28
            $this->assertEquals($date, $paymentDate);
29
        }
30
    }
31
32
    public function testPaymentScheduleConfig()
33
    {
34
        $startDate = new \DateTime();
35
        $firstPaymentDate = new \DateTime();
36
        $config = new PaymentScheduleConfig(3, $startDate, 'P1D', $firstPaymentDate);
37
38
        $schedule = PaymentScheduleFactory::generate($config);
39
40
        $this->assertEquals($schedule->getNoOfPayments(), 3);
41
    }
42
43
    public function datesProvider()
44
    {
45
        return [
46
            [new \DateTime()]
47
        ];
48
    }
49
}
50