Completed
Push — master ( 461ffe...a27db3 )
by João Felipe Magro
12:47
created

PaymentTest::setUp()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 5
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 3
nc 1
nop 0
1
<?php
2
3
namespace Tests;
4
5
use Ipag\Classes\Authentication;
6
use Ipag\Classes\Subscription;
7
use Ipag\Classes\Endpoint;
8
use Ipag\Classes\Enum\Method;
9
use Ipag\Ipag;
10
use PHPUnit\Framework\TestCase;
11
12
class PaymentTest extends TestCase
13
{
14
    private $transaction;
15
16
    public function __construct()
17
    {
18
        parent::__construct();
19
        $this->init();
20
    }
21
22
    public function setUp()
23
    {
24
        parent::setUp();
25
        $this->init();
26
    }
27
28
    public function init()
29
    {
30
        $ipag = new Ipag(new Authentication(getenv('ID_IPAG')), Endpoint::SANDBOX);
31
32
        $this->transaction = $ipag->transaction();
33
        $this->transaction->getOrder()
34
            ->setOrderId(date('mdHis'))
35
            ->setCallbackUrl(getenv('CALLBACK_URL'))
36
            ->setAmount(10.00)
37
            ->setInstallments(1)
38
            ->setPayment($ipag->payment()
39
                    ->setMethod(Method::VISA)
40
                    ->setCreditCard($ipag->creditCard()
41
                            ->setNumber('4066553613548107')
42
                            ->setHolder('FULANO')
43
                            ->setExpiryMonth('10')
44
                            ->setExpiryYear('2025')
45
                            ->setCvc('123')
46
                    )
47
            )->setCustomer($ipag->customer()
48
                ->setName('Fulano da Silva')
49
                ->setTaxpayerId('799.993.388-01')
50
                ->setPhone('11', '98888-3333')
51
                ->setEmail('[email protected]')
52
                ->setAddress($ipag->address()
53
                        ->setStreet('Rua Júlio Gonzalez')
54
                        ->setNumber('1000')
55
                        ->setNeighborhood('Barra Funda')
56
                        ->setCity('São Paulo')
57
                        ->setState('SP')
58
                        ->setZipCode('01156-060')
59
                )
60
        );
61
    }
62
63
    public function doPayment()
64
    {
65
        return $this->transaction->execute();
66
    }
67
68
    public function testExecutePaymentSuccessfully()
69
    {
70
        $transaction = $this->doPayment();
71
72
        $this->assertEquals(getenv('APPROVED'), $transaction->payment->status);
73
    }
74
75
    public function testExecuteSubscribePaymentSuccessfully()
76
    {
77
        $subscription = new Subscription();
78
79
        $subscription->setProfileId(time())
80
                ->setFrequency(1)
81
                ->setInterval('month')
82
                ->setStart(date('d/m/Y'));
83
84
        $this->transaction->getOrder()->setSubscription($subscription);
85
86
        $response = $this->doPayment();
87
88
        $this->assertEquals(getenv('APPROVED'), $response->payment->status);
89
        $this->assertNotEmpty($response->creditCard->token);
90
    }
91
}
92