CaptureTest   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 43
Duplicated Lines 0 %

Importance

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

4 Methods

Rating   Name   Duplication   Size   Complexity  
A doCapture() 0 3 1
A setUp() 0 3 1
A testCapturePaymentSuccessfully() 0 11 1
A testCapturePartialPaymentSuccessfully() 0 16 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 CaptureTest 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 doCapture($tid)
21
    {
22
        return $this->ipag->transaction()->setTid($tid)->capture();
23
    }
24
25
    public function testCapturePaymentSuccessfully()
26
    {
27
        $paymentTest = new PaymentTest();
28
        $transaction = $paymentTest->doPayment();
29
30
        $this->assertEquals(PaymentStatus::PRE_AUTHORIZED, $transaction->payment->status);
31
32
        $capturedTransaction = $this->doCapture($transaction->tid);
33
34
        $this->assertEquals(PaymentStatus::CAPTURED, $capturedTransaction->payment->status);
35
        $this->assertEquals($transaction->tid, $capturedTransaction->tid);
36
    }
37
38
    public function testCapturePartialPaymentSuccessfully()
39
    {
40
        $paymentTest = new PaymentTest();
41
        $transaction = $paymentTest->doPayment();
42
43
        $canceledTransaction = $this->ipag
44
            ->transaction()
45
            ->setTid($transaction->tid)
46
            ->setAmount('5.00')
47
            ->capture();
48
49
        $this->assertEquals(PaymentStatus::CAPTURED, $canceledTransaction->payment->status);
50
        $this->assertEquals($transaction->tid, $canceledTransaction->tid);
51
        $this->assertEquals('captured', $canceledTransaction->history[2]->operationType);
52
        $this->assertEquals('succeeded', $canceledTransaction->history[2]->status);
53
        $this->assertEquals('5.00', $canceledTransaction->history[2]->amount);
54
    }
55
}
56