Completed
Pull Request — develop (#48)
by Luís
02:58 queued 50s
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
        $this->markTestSkipped();
65
66
        $data = simplexml_load_string('<?xml version="1.0" encoding="UTF-8"?><data />');
67
        $xml = $this->address->xmlSerialize($data);
68
69
        $this->assertNotSame($data, $xml);
70
        $this->assertEquals('BRA', (string) $xml->country);
71
        $this->assertEquals('SC', (string) $xml->state);
72
        $this->assertEquals('Florianopolis', (string) $xml->city);
73
        $this->assertEquals('12345123', (string) $xml->postalCode);
74
        $this->assertEquals('Centro', (string) $xml->district);
75
        $this->assertEquals('123', (string) $xml->number);
76
        $this->assertEquals('Apto 200', (string) $xml->complement);
77
78
        $this->assertEquals(
79
            'Avenida Mauro Ramos Euripedes da Silva Santos Oliveira Carlos Henrique Salvador ',
80
            (string) $xml->street
81
        );
82
    }
83
84
    /**
85
     * @test
86
     */
87
    public function xmlSerializeShouldNotAppendComplementIfItWasntInformed()
88
    {
89
        $this->markTestSkipped();
90
91
        $address = new Address(
92
            'sca',
93
            'Florianopolis',
94
            '12345-1231',
95
            'Centro',
96
            'Avenida Mauro Ramos Euripedes da Silva Santos Oliveira Carlos Henrique Salvador das Palmeiras',
97
            123
98
        );
99
100
        $data = simplexml_load_string('<?xml version="1.0" encoding="UTF-8"?><data />');
101
        $xml = $address->xmlSerialize($data);
102
103
        $this->assertNotSame($data, $xml);
104
        $this->assertEquals('BRA', (string) $xml->country);
105
        $this->assertEquals('SC', (string) $xml->state);
106
        $this->assertEquals('Florianopolis', (string) $xml->city);
107
        $this->assertEquals('12345123', (string) $xml->postalCode);
108
        $this->assertEquals('Centro', (string) $xml->district);
109
        $this->assertEquals('123', (string) $xml->number);
110
        $this->assertEmpty($xml->xpath('//complement'));
111
112
113
        $this->assertEquals(
114
            'Avenida Mauro Ramos Euripedes da Silva Santos Oliveira Carlos Henrique Salvador ',
115
            (string) $xml->street
116
        );
117
    }
118
}
119