zangra-dev /
bpost-api-library
| 1 | <?php |
||
| 2 | |||
| 3 | namespace Tests\Bpost\HttpRequestBuilder; |
||
| 4 | |||
| 5 | use Bpost\BpostApiClient\Bpost\HttpRequestBuilder\CreateOrReplaceOrder; |
||
| 6 | use Bpost\BpostApiClient\Bpost\Order; |
||
| 7 | use Bpost\BpostApiClient\Bpost\Order\Address; |
||
| 8 | use Bpost\BpostApiClient\Bpost\Order\Box; |
||
| 9 | use Bpost\BpostApiClient\Bpost\Order\Box\AtBpost; |
||
| 10 | use Bpost\BpostApiClient\Bpost\Order\Box\Option\CashOnDelivery; |
||
| 11 | use Bpost\BpostApiClient\Bpost\Order\Box\Option\Messaging; |
||
| 12 | use Bpost\BpostApiClient\Bpost\Order\Box\Option\SaturdayDelivery; |
||
| 13 | use Bpost\BpostApiClient\Bpost\Order\Line; |
||
| 14 | use Bpost\BpostApiClient\Bpost\Order\PugoAddress; |
||
| 15 | use Bpost\BpostApiClient\Bpost\Order\Sender; |
||
| 16 | use PHPUnit_Framework_TestCase; |
||
|
0 ignored issues
–
show
|
|||
| 17 | |||
| 18 | class CreateOrReplaceOrderTest extends PHPUnit_Framework_TestCase |
||
| 19 | { |
||
| 20 | /** |
||
| 21 | * @param array $input |
||
| 22 | * @param string $url |
||
| 23 | * @param string $xml |
||
| 24 | * @param string $method |
||
| 25 | * @param bool $isExpectXml |
||
| 26 | * @param array $headers |
||
| 27 | * |
||
| 28 | * @return void |
||
| 29 | * |
||
| 30 | * @dataProvider dataResults |
||
| 31 | */ |
||
| 32 | public function testResults(array $input, $url, $xml, $headers, $method, $isExpectXml) |
||
| 33 | { |
||
| 34 | $builder = new CreateOrReplaceOrder($input[0], $input[1]); |
||
| 35 | |||
| 36 | $this->assertSame($url, $builder->getUrl()); |
||
| 37 | $this->assertSame($method, $builder->getMethod()); |
||
| 38 | $this->assertSame($xml, $builder->getXml()); |
||
| 39 | $this->assertSame($isExpectXml, $builder->isExpectXml()); |
||
| 40 | $this->assertSame($headers, $builder->getHeaders()); |
||
| 41 | } |
||
| 42 | |||
| 43 | public function dataResults() |
||
| 44 | { |
||
| 45 | $accountId = '123456789'; |
||
| 46 | |||
| 47 | return array( |
||
| 48 | array( |
||
| 49 | 'input' => array($this->getOrder(), $accountId), |
||
| 50 | 'url' => '/orders', |
||
| 51 | 'xml' => $this->getOrderXml(), |
||
| 52 | 'headers' => array('Content-type: application/vnd.bpost.shm-order-v3.3+XML'), |
||
| 53 | 'method' => 'POST', |
||
| 54 | 'isExpectXml' => false, |
||
| 55 | ), |
||
| 56 | ); |
||
| 57 | } |
||
| 58 | |||
| 59 | /** |
||
| 60 | * @return Order |
||
| 61 | */ |
||
| 62 | private function getOrder() |
||
| 63 | { |
||
| 64 | $order = new Order('ref_1'); |
||
| 65 | |||
| 66 | $order->setCostCenter('Cost Center'); |
||
| 67 | |||
| 68 | $order->setLines(array(new Line('Product 1', 1))); |
||
| 69 | $order->addLine(new Line('Product 1', 5)); |
||
| 70 | |||
| 71 | $senderAddress = new Address(); |
||
| 72 | $senderAddress->setStreetName('MUNT'); |
||
| 73 | $senderAddress->setNumber(1); |
||
| 74 | $senderAddress->setBox(1); |
||
| 75 | $senderAddress->setPostalCode(1000); |
||
| 76 | $senderAddress->setLocality('Brussel'); |
||
| 77 | $senderAddress->setCountryCode('BE'); |
||
| 78 | $senderAddress->setBox(1); |
||
| 79 | |||
| 80 | $pugoAddress = new PugoAddress(); |
||
| 81 | $pugoAddress->setStreetName('Turnhoutsebaan'); |
||
| 82 | $pugoAddress->setNumber(468); |
||
| 83 | $pugoAddress->setBox('A'); |
||
| 84 | $pugoAddress->setPostalCode(2110); |
||
| 85 | $pugoAddress->setLocality('Wijnegem'); |
||
| 86 | $pugoAddress->setCountryCode('BE'); |
||
| 87 | |||
| 88 | $sender = new Sender(); |
||
| 89 | $sender->setName('SENDER NAME'); |
||
| 90 | $sender->setCompany('SENDER COMPANY'); |
||
| 91 | $sender->setAddress($senderAddress); |
||
| 92 | $sender->setEmailAddress('[email protected]'); |
||
| 93 | $sender->setPhoneNumber('022011111'); |
||
| 94 | |||
| 95 | $atBpost = new AtBpost(); |
||
| 96 | |||
| 97 | $atBpost->setOptions(array( |
||
| 98 | new Messaging('infoDistributed', 'EN', null, '0476123456'), |
||
| 99 | new Messaging('keepMeInformed', 'EN', null, '0032475123456'), |
||
| 100 | )); |
||
| 101 | $atBpost->addOption(new SaturdayDelivery()); |
||
| 102 | $atBpost->addOption(new CashOnDelivery(1251, 'BE19210023508812', 'GEBABEBB')); |
||
| 103 | |||
| 104 | $atBpost->setWeight(2000); |
||
| 105 | |||
| 106 | $atBpost->setPugoId(207500); |
||
| 107 | $atBpost->setPugoName('WIJNEGEM'); |
||
| 108 | $atBpost->setPugoAddress($pugoAddress); |
||
| 109 | $atBpost->setReceiverName('RECEIVER NAME'); |
||
| 110 | $atBpost->setReceiverCompany('RECEIVER COMPANY'); |
||
| 111 | $atBpost->setRequestedDeliveryDate('2020-10-22'); |
||
| 112 | |||
| 113 | $box = new Box(); |
||
| 114 | $box->setSender($sender); |
||
| 115 | $box->setNationalBox($atBpost); |
||
| 116 | $box->setRemark('bpack@bpost VAS 038 - COD+SAT+iD'); |
||
| 117 | $box->setAdditionalCustomerReference('Reference that can be used for cross-referencing'); |
||
| 118 | |||
| 119 | $order->setBoxes(array()); |
||
| 120 | $this->assertCount(0, $order->getBoxes()); |
||
| 121 | $order->addBox($box); |
||
| 122 | |||
| 123 | return $order; |
||
| 124 | } |
||
| 125 | |||
| 126 | private function getOrderXml() |
||
| 127 | { |
||
| 128 | return <<< XML |
||
| 129 | <?xml version="1.0" encoding="utf-8"?> |
||
| 130 | <tns:order xmlns="http://schema.post.be/shm/deepintegration/v3/national" xmlns:common="http://schema.post.be/shm/deepintegration/v3/common" xmlns:tns="http://schema.post.be/shm/deepintegration/v3/" xmlns:international="http://schema.post.be/shm/deepintegration/v3/international" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://schema.post.be/shm/deepintegration/v3/"> |
||
| 131 | <tns:accountId>123456789</tns:accountId> |
||
| 132 | <tns:reference>ref_1</tns:reference> |
||
| 133 | <tns:costCenter>Cost Center</tns:costCenter> |
||
| 134 | <tns:orderLine> |
||
| 135 | <tns:text>Product 1</tns:text> |
||
| 136 | <tns:nbOfItems>1</tns:nbOfItems> |
||
| 137 | </tns:orderLine> |
||
| 138 | <tns:orderLine> |
||
| 139 | <tns:text>Product 1</tns:text> |
||
| 140 | <tns:nbOfItems>5</tns:nbOfItems> |
||
| 141 | </tns:orderLine> |
||
| 142 | <tns:box> |
||
| 143 | <tns:sender> |
||
| 144 | <common:name>SENDER NAME</common:name> |
||
| 145 | <common:company>SENDER COMPANY</common:company> |
||
| 146 | <common:address> |
||
| 147 | <common:streetName>MUNT</common:streetName> |
||
| 148 | <common:number>1</common:number> |
||
| 149 | <common:box>1</common:box> |
||
| 150 | <common:postalCode>1000</common:postalCode> |
||
| 151 | <common:locality>Brussel</common:locality> |
||
| 152 | <common:countryCode>BE</common:countryCode> |
||
| 153 | </common:address> |
||
| 154 | <common:emailAddress>[email protected]</common:emailAddress> |
||
| 155 | <common:phoneNumber>022011111</common:phoneNumber> |
||
| 156 | </tns:sender> |
||
| 157 | <tns:nationalBox> |
||
| 158 | <atBpost> |
||
| 159 | <product>bpack@bpost</product> |
||
| 160 | <options> |
||
| 161 | <common:infoDistributed language="EN"> |
||
| 162 | <common:mobilePhone>0476123456</common:mobilePhone> |
||
| 163 | </common:infoDistributed> |
||
| 164 | <common:keepMeInformed language="EN"> |
||
| 165 | <common:mobilePhone>0032475123456</common:mobilePhone> |
||
| 166 | </common:keepMeInformed> |
||
| 167 | <common:saturdayDelivery/> |
||
| 168 | <common:cod> |
||
| 169 | <common:codAmount>1251</common:codAmount> |
||
| 170 | <common:iban>BE19210023508812</common:iban> |
||
| 171 | <common:bic>GEBABEBB</common:bic> |
||
| 172 | </common:cod> |
||
| 173 | </options> |
||
| 174 | <weight>2000</weight> |
||
| 175 | <pugoId>207500</pugoId> |
||
| 176 | <pugoName>WIJNEGEM</pugoName> |
||
| 177 | <pugoAddress> |
||
| 178 | <common:streetName>Turnhoutsebaan</common:streetName> |
||
| 179 | <common:number>468</common:number> |
||
| 180 | <common:box>A</common:box> |
||
| 181 | <common:postalCode>2110</common:postalCode> |
||
| 182 | <common:locality>Wijnegem</common:locality> |
||
| 183 | <common:countryCode>BE</common:countryCode> |
||
| 184 | </pugoAddress> |
||
| 185 | <receiverName>RECEIVER NAME</receiverName> |
||
| 186 | <receiverCompany>RECEIVER COMPANY</receiverCompany> |
||
| 187 | <requestedDeliveryDate>2020-10-22</requestedDeliveryDate> |
||
| 188 | </atBpost> |
||
| 189 | </tns:nationalBox> |
||
| 190 | <tns:remark>bpack@bpost VAS 038 - COD+SAT+iD</tns:remark> |
||
| 191 | <tns:additionalCustomerReference>Reference that can be used for cross-referencing</tns:additionalCustomerReference> |
||
| 192 | </tns:box> |
||
| 193 | </tns:order> |
||
| 194 | |||
| 195 | XML; |
||
| 196 | } |
||
| 197 | } |
||
| 198 |
The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g.
excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths