CaptureTest::doCapture()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 1
c 1
b 0
f 0
dl 0
loc 3
rs 10
cc 1
nc 1
nop 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