Completed
Branch master (185941)
by Randy
03:06
created

BiproTest::testBiproGetShipment()   B

Complexity

Conditions 1
Paths 1

Size

Total Lines 31
Code Lines 21

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 31
rs 8.8571
c 0
b 0
f 0
cc 1
eloc 21
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\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
//        print_r($envelope);
48
//        exit;
49
50
        $assembler = new Assembler();
51
        $envelope->accept($assembler);
52
53
        $doc = new DOMDocument('1.0', 'utf-8');
54
        $doc->load(__DIR__ . '/xml/bipro_login.xml');
55
56
        $this->assertEqualXMLStructure($assembler->getDocument()->documentElement, $doc->documentElement);
57
    }
58
59
    public function testBiproListShipment()
60
    {
61
        $envelope = new Envelope();
62
63
        $security = new Security();
64
        $token    = new SecurityContextToken('bipro:7860072500822840554');
65
        $security->appendElement($token);
66
67
        $header = new Header();
68
        $header->appendElement($security);
69
70
        $request = new Request(new BiPROVersion('2.1.4.1.1'));
71
        $request->setConfirm(false);
72
        $shipment = new ListShipments($request);
73
74
        $body = new Body();
75
        $body->appendElement($shipment);
76
77
        $envelope->appendElement($header);
78
        $envelope->appendElement($body);
79
80
        $assembler = new Assembler();
81
        $envelope->accept($assembler);
82
83
        $doc = new DOMDocument('1.0', 'utf-8');
84
        $doc->load(__DIR__ . '/xml/bipro_list.xml');
85
86
        $this->assertEqualXMLStructure($assembler->getDocument()->documentElement, $doc->documentElement);
87
    }
88
89
    public function testBiproGetShipment()
90
    {
91
        $envelope = new Envelope();
92
93
        $security = new Security();
94
        $token    = new SecurityContextToken('bipro:7860072500822840554');
95
        $security->appendElement($token);
96
97
        $header = new Header();
98
        $header->appendElement($security);
99
100
        $request = new Request(new BiPROVersion('2.1.4.1.1'));
101
        $request->setConsumerId(1);
102
        $request->setId(1);
103
        $request->setConfirm(false);
104
        $shipment = new GetShipment($request);
105
106
        $body = new Body();
107
        $body->appendElement($shipment);
108
109
        $envelope->appendElement($header);
110
        $envelope->appendElement($body);
111
112
        $assembler = new Assembler();
113
        $envelope->accept($assembler);
114
115
        $doc = new DOMDocument('1.0', 'utf-8');
116
        $doc->load(__DIR__ . '/xml/bipro_get.xml');
117
118
        $this->assertEqualXMLStructure($assembler->getDocument()->documentElement, $doc->documentElement);
119
    }
120
121
    public function testBiproAckShipment()
122
    {
123
        $envelope = new Envelope();
124
125
        $security = new Security();
126
        $token    = new SecurityContextToken('bipro:7860072500822840554');
127
        $security->appendElement($token);
128
129
        $header = new Header();
130
        $header->appendElement($security);
131
132
        $request = new Request(new BiPROVersion('2.1.4.1.1'));
133
        $request->setConsumerId(1);
134
        $request->setId(1);
135
        $shipment = new AcknowledgeShipment($request);
136
137
        $body = new Body();
138
        $body->appendElement($shipment);
139
140
        $envelope->appendElement($header);
141
        $envelope->appendElement($body);
142
143
        $assembler = new Assembler();
144
        $envelope->accept($assembler);
145
146
        $doc = new DOMDocument('1.0', 'utf-8');
147
        $doc->load(__DIR__ . '/xml/bipro_ack.xml');
148
149
        $this->assertEqualXMLStructure($assembler->getDocument()->documentElement, $doc->documentElement);
150
    }
151
}