Completed
Pull Request — develop (#48)
by Luís
03:01
created

RequestSerializerTest::testSerializeShouldXMLFull()   B

Complexity

Conditions 1
Paths 1

Size

Total Lines 32
Code Lines 26

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 32
rs 8.8571
cc 1
eloc 26
nc 1
nop 0
1
<?php
2
namespace PHPSC\PagSeguro\Requests\PreApprovals;
3
4
use SimpleXMLElement;
5
use DateTime;
6
use PHPSC\PagSeguro\Customer\Customer;
7
use PHPSC\PagSeguro\Customer\Phone;
8
use PHPSC\PagSeguro\Customer\Address;
9
10
/**
11
 * @author Renato Moura <[email protected]>
12
 */
13
class RequestSerializerTest extends \PHPUnit_Framework_TestCase
14
{
15
    public function testSerializeShouldXMLFull()
16
    {
17
        $preApproval = new PreApproval;
18
        $preApproval->setChargeType('auto');
19
        $preApproval->setName('Assinatura Revista');
20
        $preApproval->setPeriod('MONTHLY');
21
        $preApproval->setFinalDate(new DateTime('2016-11-18'));
22
        $preApproval->setMaxTotalAmount(3000);
23
        $preApproval->setDetails('Cobranca Mensal da Revista');
24
        $preApproval->setAmountPerPayment(100);
25
        $preApproval->setMaxAmountPerPayment(150);
26
        $preApproval->setInitialDate(new DateTime('2015-11-18'));
27
        $preApproval->setMaxPaymentsPerPeriod(12);
28
        $preApproval->setMaxAmountPerPeriod(1200);
29
30
        $customerAddress = new Address('AC', 'Sao Maite', '99500-079', 'Centro', 'Rua David Delgado', '55', 'Fundos');
31
        $customerPhone = new Phone('11', '99999999');
32
        $customer = new Customer('[email protected]', 'FooBar', $customerPhone, $customerAddress);
33
34
        $request = new Request($preApproval);
35
        $request->setCustomer($customer);
36
        $request->setReference('abcdef');
37
        $request->setReviewOn('http://localhost/return.php');
38
        $request->setRedirectTo('http://localhost/success.php');
39
40
        $serializer = new RequestSerializer;
41
        $xml = $serializer->serialize($request);
42
43
        $this->assertInstanceOf(SimpleXMLElement::class, $xml);
44
        $expected = simplexml_load_file(__DIR__.'/xml/preAprovalsRequestFull.xml');
45
        $this->assertEquals($expected, $xml);
46
    }
47
}
48