CancelTest::setUp()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 1
dl 0
loc 3
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 0
1
<?php
2
3
namespace Tests;
4
5
use Ipag\Classes\Authentication;
6
use Ipag\Classes\Endpoint;
7
use Ipag\Classes\Enum\PaymentStatus;
8
use Ipag\Ipag;
9
use PHPUnit\Framework\TestCase;
10
11
class CancelTest extends TestCase
12
{
13
    private $ipag;
14
15
    public function setUp()
16
    {
17
        $this->ipag = new Ipag(new Authentication(getenv('ID_IPAG'), getenv('API_KEY')), Endpoint::SANDBOX);
18
    }
19
20
    public function doCancel($tid)
21
    {
22
        return $this->ipag->transaction()->setTid($tid)->cancel();
23
    }
24
25
    public function testCancelPaymentSuccessfully()
26
    {
27
        $paymentTest = new PaymentTest();
28
        $transaction = $paymentTest->doPayment();
29
30
        $canceledTransaction = $this->doCancel($transaction->tid);
31
32
        $this->assertEquals(PaymentStatus::CANCELED, $canceledTransaction->payment->status);
33
        $this->assertEquals($transaction->tid, $canceledTransaction->tid);
34
    }
35
36
    public function testCancelPartialPaymentSuccessfully()
37
    {
38
        $paymentTest = new PaymentTest();
39
        $transaction = $paymentTest->doPayment();
40
41
        $canceledTransaction = $this->ipag
42
            ->transaction()
43
            ->setTid($transaction->tid)
44
            ->setAmount('5.00')
45
            ->cancel();
46
47
        $this->assertEquals(PaymentStatus::PRE_AUTHORIZED, $canceledTransaction->payment->status);
48
        $this->assertEquals($transaction->tid, $canceledTransaction->tid);
49
        $this->assertEquals('voided', $canceledTransaction->history[2]->operationType);
50
        $this->assertEquals('succeeded', $canceledTransaction->history[2]->status);
51
        $this->assertEquals('5.00', $canceledTransaction->history[2]->amount);
52
    }
53
}
54