CancelTest   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 41
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 4
eloc 21
c 1
b 0
f 0
dl 0
loc 41
rs 10

4 Methods

Rating   Name   Duplication   Size   Complexity  
A setUp() 0 3 1
A doCancel() 0 3 1
A testCancelPartialPaymentSuccessfully() 0 16 1
A testCancelPaymentSuccessfully() 0 9 1
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