Passed
Push — develop ( 726e4d...2a8883 )
by Luís
37s
created

AddressTest::xmlSerializeShouldNotAppendComplementIfItWasntInformed()   B

Complexity

Conditions 1
Paths 1

Size

Total Lines 31
Code Lines 22

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 31
rs 8.8571
cc 1
eloc 22
nc 1
nop 0
1
<?php
2
namespace PHPSC\PagSeguro\Customer;
3
4
class AddressTest extends \PHPUnit_Framework_TestCase
5
{
6
    /**
7
     * @var Address
8
     */
9
    protected $address;
10
11
    protected function setUp()
12
    {
13
        $this->address = new Address(
14
            'sca',
15
            'Florianopolis',
16
            '12345-1231',
17
            'Centro',
18
            'Avenida Mauro Ramos Euripedes da Silva Santos Oliveira Carlos Henrique Salvador das Palmeiras',
19
            123,
20
            'Apto 200'
21
        );
22
    }
23
24
    /**
25
     * @test
26
     */
27
    public function constructorShouldConfigureTheAttributes()
28
    {
29
        $this->assertAttributeEquals('BRA', 'country', $this->address);
30
        $this->assertAttributeEquals('sca', 'state', $this->address);
31
        $this->assertAttributeEquals('Florianopolis', 'city', $this->address);
32
        $this->assertAttributeEquals('123451231', 'postalCode', $this->address);
33
        $this->assertAttributeEquals('Centro', 'district', $this->address);
34
        $this->assertAttributeEquals('123', 'number', $this->address);
35
        $this->assertAttributeEquals('Apto 200', 'complement', $this->address);
36
37
        $this->assertAttributeEquals(
38
            'Avenida Mauro Ramos Euripedes da Silva Santos Oliveira Carlos Henrique Salvador das Palmeiras',
39
            'street',
40
            $this->address
41
        );
42
    }
43
44
    /**
45
     * @test
46
     */
47
    public function gettersShouldReturnTheAttributeValue()
48
    {
49
        $this->assertAttributeEquals($this->address->getCountry(), 'country', $this->address);
50
        $this->assertAttributeEquals($this->address->getState(), 'state', $this->address);
51
        $this->assertAttributeEquals($this->address->getCity(), 'city', $this->address);
52
        $this->assertAttributeEquals($this->address->getPostalCode(), 'postalCode', $this->address);
53
        $this->assertAttributeEquals($this->address->getDistrict(), 'district', $this->address);
54
        $this->assertAttributeEquals($this->address->getStreet(), 'street', $this->address);
55
        $this->assertAttributeEquals($this->address->getNumber(), 'number', $this->address);
56
        $this->assertAttributeEquals($this->address->getComplement(), 'complement', $this->address);
57
    }
58
59
    /**
60
     * @testAppendFormattedValuesOnAChildNode
61
     */
62
    public function xmlSerializeShouldAppendFormattedValuesOnAChildNode()
63
    {
64
        $data = simplexml_load_string('<?xml version="1.0" encoding="UTF-8"?><data />');
65
        $xml = $this->address->xmlSerialize($data);
66
67
        $this->assertSame($data, $xml);
68
        $this->assertEquals('BRA', (string) $xml->address->country);
69
        $this->assertEquals('sca', (string) $xml->address->state);
70
        $this->assertEquals('Florianopolis', (string) $xml->address->city);
71
        $this->assertEquals('123451231', (string) $xml->address->postalCode);
72
        $this->assertEquals('Centro', (string) $xml->address->district);
73
        $this->assertEquals('123', (string) $xml->address->number);
74
        $this->assertEquals('Apto 200', (string) $xml->address->complement);
75
76
        $this->assertEquals(
77
            'Avenida Mauro Ramos Euripedes da Silva Santos Oliveira Carlos Henrique Salvador das Palmeiras',
78
            (string) $xml->address->street
79
        );
80
    }
81
82
    /**
83
     * @test
84
     */
85
    public function xmlSerializeShouldNotAppendComplementIfItWasntInformed()
86
    {
87
        $address = new Address(
88
            'SC',
89
            'Florianopolis',
90
            '12345-1231',
91
            'Centro',
92
            'Avenida Mauro Ramos Euripedes da Silva Santos Oliveira Carlos Henrique Salvador',
93
            123
94
        );
95
96
        $data = simplexml_load_string('<?xml version="1.0" encoding="UTF-8"?><data />');
97
        $xml = $address->xmlSerialize($data);
98
99
        $this->assertSame($data, $xml);
100
        $this->assertEquals('BRA', (string) $xml->address->country);
101
        $this->assertEquals('SC', (string) $xml->address->state);
102
        $this->assertEquals('Florianopolis', (string) $xml->address->city);
103
        $this->assertEquals('123451231', (string) $xml->address->postalCode);
104
        $this->assertEquals('Centro', (string) $xml->address->district);
105
        $this->assertEquals('123', (string) $xml->address->number);
106
        $this->assertEmpty($xml->xpath('//address/complement'));
107
108
109
        $this->assertEquals(
110
            'Avenida Mauro Ramos Euripedes da Silva Santos Oliveira Carlos Henrique Salvador',
111
            (string) $xml->address->street
112
        );
113
    }
114
}
115