@@ -257,7 +257,7 @@ private function assertTrackingResult($expectedTrackingData, $trackingResults):
257257 * @magentoConfigFixture default_store carriers/dhl/id some ID
258258 * @magentoConfigFixture default_store carriers/dhl/password some password
259259 * @magentoConfigFixture default_store carriers/dhl/account 1234567890
260- * @magentoConfigFixture default_store carriers/dhl/gateway_url https://xmlpi-ea.dhl.com/XMLShippingServlet
260+ * @magentoConfigFixture default_store carriers/dhl/gateway_xml_url https://xmlpi-ea.dhl.com/XMLShippingServlet
261261 * @magentoConfigFixture default_store carriers/dhl/content_type N
262262 * @magentoConfigFixture default_store carriers/dhl/nondoc_methods 1,3,4,8,P,Q,E,F,H,J,M,V,Y
263263 * @magentoConfigFixture default_store carriers/dhl/unit_of_measure C
@@ -451,12 +451,13 @@ private function buildSoftwareVersion(): string
451451 * Tests that valid rates are returned when sending a quotes request.
452452 *
453453 * @magentoConfigFixture default_store carriers/dhl/active 1
454+ * @magentoConfigFixture default_store carriers/dhl/type DHL_XML
454455 * @magentoConfigFixture default_store carriers/dhl/id some ID
455456 * @magentoConfigFixture default_store carriers/dhl/shipment_days Mon,Tue,Wed,Thu,Fri,Sat
456457 * @magentoConfigFixture default_store carriers/dhl/intl_shipment_days Mon,Tue,Wed,Thu,Fri,Sat
457458 * @magentoConfigFixture default_store carriers/dhl/allowed_methods IE
458459 * @magentoConfigFixture default_store carriers/dhl/international_service IE
459- * @magentoConfigFixture default_store carriers/dhl/gateway_url https://xmlpi-ea.dhl.com/XMLShippingServlet
460+ * @magentoConfigFixture default_store carriers/dhl/gateway_xml_url https://xmlpi-ea.dhl.com/XMLShippingServlet
460461 * @magentoConfigFixture default_store carriers/dhl/id some ID
461462 * @magentoConfigFixture default_store carriers/dhl/password some password
462463 * @magentoConfigFixture default_store carriers/dhl/content_type N
@@ -506,6 +507,7 @@ public function testCollectRates()
506507 * @param string|null $width
507508 * @param string|null $depth
508509 * @magentoConfigFixture default_store carriers/dhl/active 1
510+ * @magentoConfigFixture default_store carriers/dhl/type DHL_XML
509511 * @dataProvider collectRatesWithoutDimensionsDataProvider
510512 */
511513 public function testCollectRatesWithoutDimensions (?string $ size , ?string $ height , ?string $ width , ?string $ depth )
@@ -528,6 +530,8 @@ public function testCollectRatesWithoutDimensions(?string $size, ?string $height
528530 * Test get carriers rates if has HttpException.
529531 *
530532 * @magentoConfigFixture default_store carriers/dhl/active 1
533+ * @magentoConfigFixture default_store carriers/dhl/type DHL_XML
534+ *
531535 */
532536 public function testGetRatesWithHttpException (): void
533537 {
@@ -588,12 +592,13 @@ private function setDhlConfig(array $params)
588592 * @param array $addRequestData
589593 * @param bool $freeShippingExpects
590594 * @magentoConfigFixture default_store carriers/dhl/active 1
595+ * @magentoConfigFixture default_store carriers/dhl/type DHL_XML
591596 * @magentoConfigFixture default_store carriers/dhl/id some ID
592597 * @magentoConfigFixture default_store carriers/dhl/shipment_days Mon,Tue,Wed,Thu,Fri,Sat
593598 * @magentoConfigFixture default_store carriers/dhl/intl_shipment_days Mon,Tue,Wed,Thu,Fri,Sat
594599 * @magentoConfigFixture default_store carriers/dhl/allowed_methods IE
595600 * @magentoConfigFixture default_store carriers/dhl/international_service IE
596- * @magentoConfigFixture default_store carriers/dhl/gateway_url https://xmlpi-ea.dhl.com/XMLShippingServlet
601+ * @magentoConfigFixture default_store carriers/dhl/gateway_xml_url https://xmlpi-ea.dhl.com/XMLShippingServlet
597602 * @magentoConfigFixture default_store carriers/dhl/id some ID
598603 * @magentoConfigFixture default_store carriers/dhl/password some password
599604 * @magentoConfigFixture default_store carriers/dhl/content_type N
@@ -686,6 +691,8 @@ private function getRequestData(): array
686691 'dhl_id ' => 'MAGEN_8501 ' ,
687692 'dhl_password ' => 'QR2GO1U74X ' ,
688693 'dhl_account ' => '799909537 ' ,
694+ 'dhl_api_key ' => 'ab01cD2eF3gH4j ' ,
695+ 'dhl_api_secret ' => 'A!1bC@3dE#4fG$5h ' ,
689696 'dhl_shipping_intl_key ' => '54233F2B2C4E5C4B4C5E5A59565530554B405641475D5659 ' ,
690697 'girth ' => null ,
691698 'height ' => null ,
@@ -737,4 +744,53 @@ private function createRequest(array $addRequestData = []): RateRequest
737744
738745 return Bootstrap::getObjectManager ()->create (RateRequest::class, ['data ' => $ requestData ]);
739746 }
747+
748+ /**
749+ * Tests that valid rates are returned when sending a quotes request.
750+ *
751+ * @magentoConfigFixture default_store carriers/dhl/active 1
752+ * @magentoConfigFixture default_store carriers/dhl/type DHL_REST
753+ * @magentoConfigFixture default_store carriers/dhl/api_key some KEY
754+ * @magentoConfigFixture default_store carriers/dhl/shipment_days Mon,Tue,Wed,Thu,Fri,Sat
755+ * @magentoConfigFixture default_store carriers/dhl/intl_shipment_days Mon,Tue,Wed,Thu,Fri,Sat
756+ * @magentoConfigFixture default_store carriers/dhl/allowed_methods IE
757+ * @magentoConfigFixture default_store carriers/dhl/international_service IE
758+ * @magentoConfigFixture default_store carriers/dhl/gateway_rest_url https://express.api.dhl.com/mydhlapi
759+ * @magentoConfigFixture default_store carriers/dhl/api_key some KEY
760+ * @magentoConfigFixture default_store carriers/dhl/api_secret some secret
761+ * @magentoConfigFixture default_store carriers/dhl/content_type N
762+ * @magentoConfigFixture default_store carriers/dhl/nondoc_methods 1,3,4,8,P,Q,E,F,H,J,M,V,Y,N
763+ * @magentoConfigFixture default_store carriers/dhl/showmethod' => 1,
764+ * @magentoConfigFixture default_store carriers/dhl/title DHL Title
765+ * @magentoConfigFixture default_store carriers/dhl/specificerrmsg dhl error message
766+ * @magentoConfigFixture default_store carriers/dhl/unit_of_measure K
767+ * @magentoConfigFixture default_store carriers/dhl/size 1
768+ * @magentoConfigFixture default_store carriers/dhl/height 1.6
769+ * @magentoConfigFixture default_store carriers/dhl/width 1.6
770+ * @magentoConfigFixture default_store carriers/dhl/length 1.6
771+ * @magentoConfigFixture default_store carriers/dhl/debug 1
772+ * @magentoConfigFixture default_store shipping/origin/country_id GB
773+ */
774+ public function testCollectRestRates ()
775+ {
776+ $ this ->setNextResponse (__DIR__ . '/../_files/dhl_quote_response.json ' );
777+ $ request = $ this ->createRequest ();
778+ $ expectedRates = [
779+ ['carrier ' => 'dhl ' , 'carrier_title ' => 'DHL Title ' , 'price ' => 47.63 , 'method ' => 'N ' , 'cost ' => 47.63 ]
780+ ];
781+
782+ $ actualRates = $ this ->dhlCarrier ->collectRates ($ request )->getAllRates ();
783+
784+ self ::assertEquals (count ($ expectedRates ), count ($ actualRates ));
785+ foreach ($ actualRates as $ i => $ actualRate ) {
786+ $ actualRate = $ actualRate ->getData ();
787+ unset($ actualRate ['method_title ' ]);
788+ self ::assertEquals ($ expectedRates [$ i ], $ actualRate );
789+ }
790+ $ requestRest = $ this ->httpClient ->getLastRequest ()->getBody ();
791+ self ::assertStringContainsString ('"weight": 18 ' , $ requestRest );
792+ self ::assertStringContainsString ('"height": 0.63 ' , $ requestRest );
793+ self ::assertStringContainsString ('"width": 0.63 ' , $ requestRest );
794+ self ::assertStringContainsString ('"length": 0 ' , $ requestRest );
795+ }
740796}
0 commit comments