Completed
Push — master ( 126b63...733cbc )
by Randy
04:39
created

BiproTest::testBiproListShipment()   B

Complexity

Conditions 1
Paths 1

Size

Total Lines 29
Code Lines 19

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 29
rs 8.8571
c 0
b 0
f 0
cc 1
eloc 19
nc 1
nop 0
1
<?php
2
3
namespace Dgame\Soap\Test;
4
5
use Dgame\Soap\Component\AcknowledgeShipment;
6
use Dgame\Soap\Component\BiPROVersion;
7
use Dgame\Soap\Component\Body;
8
use Dgame\Soap\Component\Envelope;
9
use Dgame\Soap\Component\GetShipment;
10
use Dgame\Soap\Component\Header;
11
use Dgame\Soap\Component\ListShipments;
12
use Dgame\Soap\Component\Request;
13
use Dgame\Soap\Component\RequestSecurityToken;
14
use Dgame\Soap\Component\Security;
15
use Dgame\Soap\Component\SecurityContextToken;
16
use Dgame\Soap\Component\UsernameToken;
17
use Dgame\Soap\Hydrator\Dom\Assembler;
18
use DOMDocument;
19
use PHPUnit\Framework\TestCase;
20
21
/**
22
 * Class BiproTest
23
 * @package Dgame\Soap\Test
24
 */
25
final class BiproTest extends TestCase
26
{
27
    public function testRequestTokenService()
28
    {
29
        $envelope = new Envelope();
30
31
        $security = new Security();
32
        $token    = new UsernameToken('Foo', 'Bar');
33
        $security->appendElement($token);
34
35
        $header = new Header();
36
        $header->appendElement($security);
37
38
        $rst = new RequestSecurityToken();
39
        $rst->appendElement(new BiPROVersion('2.1.6.1.1'));
40
41
        $body = new Body();
42
        $body->appendElement($rst);
43
44
        $envelope->appendElement($header);
45
        $envelope->appendElement($body);
46
47
        $assembler = new Assembler();
48
        $envelope->accept($assembler);
49
50
        $doc = new DOMDocument('1.0', 'utf-8');
51
        $doc->load(__DIR__ . '/xml/bipro_login.xml');
52
53
        $this->assertEqualXMLStructure($assembler->getDocument()->documentElement, $doc->documentElement);
54
    }
55
56
    public function testBiproListShipment()
57
    {
58
        $envelope = new Envelope();
59
60
        $security = new Security();
61
        $token    = new SecurityContextToken('bipro:7860072500822840554');
62
        $security->appendElement($token);
63
64
        $header = new Header();
65
        $header->appendElement($security);
66
67
        $request = new Request(new BiPROVersion('2.1.4.1.1'));
68
        $request->setConfirm(false);
69
        $shipment = new ListShipments($request);
70
71
        $body = new Body();
72
        $body->appendElement($shipment);
73
74
        $envelope->appendElement($header);
75
        $envelope->appendElement($body);
76
77
        $assembler = new Assembler();
78
        $envelope->accept($assembler);
79
80
        $doc = new DOMDocument('1.0', 'utf-8');
81
        $doc->load(__DIR__ . '/xml/bipro_list.xml');
82
83
        $this->assertEqualXMLStructure($assembler->getDocument()->documentElement, $doc->documentElement);
84
    }
85
86
    public function testBiproGetShipment()
87
    {
88
        $envelope = new Envelope();
89
90
        $security = new Security();
91
        $token    = new SecurityContextToken('bipro:7860072500822840554');
92
        $security->appendElement($token);
93
94
        $header = new Header();
95
        $header->appendElement($security);
96
97
        $request = new Request(new BiPROVersion('2.1.4.1.1'));
98
        $request->setConsumerId(1);
99
        $request->setId(1);
100
        $request->setConfirm(false);
101
        $shipment = new GetShipment($request);
102
103
        $body = new Body();
104
        $body->appendElement($shipment);
105
106
        $envelope->appendElement($header);
107
        $envelope->appendElement($body);
108
109
        $assembler = new Assembler();
110
        $envelope->accept($assembler);
111
112
        $doc = new DOMDocument('1.0', 'utf-8');
113
        $doc->load(__DIR__ . '/xml/bipro_get.xml');
114
115
        $this->assertEqualXMLStructure($assembler->getDocument()->documentElement, $doc->documentElement);
116
    }
117
118
    public function testBiproAckShipment()
119
    {
120
        $envelope = new Envelope();
121
122
        $security = new Security();
123
        $token    = new SecurityContextToken('bipro:7860072500822840554');
124
        $security->appendElement($token);
125
126
        $header = new Header();
127
        $header->appendElement($security);
128
129
        $request = new Request(new BiPROVersion('2.1.4.1.1'));
130
        $request->setConsumerId(1);
131
        $request->setId(1);
132
        $shipment = new AcknowledgeShipment($request);
133
134
        $body = new Body();
135
        $body->appendElement($shipment);
136
137
        $envelope->appendElement($header);
138
        $envelope->appendElement($body);
139
140
        $assembler = new Assembler();
141
        $envelope->accept($assembler);
142
143
        $doc = new DOMDocument('1.0', 'utf-8');
144
        $doc->load(__DIR__ . '/xml/bipro_ack.xml');
145
146
        $this->assertEqualXMLStructure($assembler->getDocument()->documentElement, $doc->documentElement);
147
    }
148
}