Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
GuestShipmentEstimationTest.php
Go to the documentation of this file.
1 <?php
6 namespace Magento\Quote\Api;
7 
11 
13 {
14  const SERVICE_VERSION = 'V1';
15  const SERVICE_NAME = 'quoteGuestShipmentEstimationV1';
16  const RESOURCE_PATH = '/V1/guest-carts/';
17 
21  private $objectManager;
22 
23  protected function setUp()
24  {
26  }
27 
32  public function testEstimateByExtendedAddress()
33  {
35  $quote = $this->objectManager->create(\Magento\Quote\Model\Quote::class);
36  $quote->load('test01', 'reserved_order_id');
37  $cartId = $quote->getId();
38  if (!$cartId) {
39  $this->fail('quote fixture failed');
40  }
41 
44  ->create(\Magento\Quote\Model\QuoteIdMaskFactory::class)
45  ->create();
46  $quoteIdMask->load($cartId, 'quote_id');
47  //Use masked cart Id
48  $cartId = $quoteIdMask->getMaskedId();
49  $serviceInfo = [
50  'rest' => [
51  'resourcePath' => '/V1/guest-carts/' . $cartId . '/estimate-shipping-methods',
53  ],
54  'soap' => [
55  'service' => self::SERVICE_NAME,
56  'serviceVersion' => 'V1',
57  'operation' => self::SERVICE_NAME . 'EstimateByExtendedAddress',
58  ],
59  ];
60  if (TESTS_WEB_API_ADAPTER == self::ADAPTER_SOAP) {
62  $address = $quote->getBillingAddress();
63 
64  $data = [
65  AddressInterface::KEY_ID => (int)$address->getId(),
66  AddressInterface::KEY_REGION => $address->getRegion(),
67  AddressInterface::KEY_REGION_ID => $address->getRegionId(),
68  AddressInterface::KEY_REGION_CODE => $address->getRegionCode(),
69  AddressInterface::KEY_COUNTRY_ID => $address->getCountryId(),
70  AddressInterface::KEY_STREET => $address->getStreet(),
71  AddressInterface::KEY_COMPANY => $address->getCompany(),
72  AddressInterface::KEY_TELEPHONE => $address->getTelephone(),
73  AddressInterface::KEY_POSTCODE => $address->getPostcode(),
75  AddressInterface::KEY_FIRSTNAME => $address->getFirstname(),
76  AddressInterface::KEY_LASTNAME => $address->getLastname(),
77  AddressInterface::KEY_CUSTOMER_ID => $address->getCustomerId(),
79  AddressInterface::SAME_AS_BILLING => $address->getSameAsBilling(),
80  AddressInterface::CUSTOMER_ADDRESS_ID => $address->getCustomerAddressId(),
81  AddressInterface::SAVE_IN_ADDRESS_BOOK => $address->getSaveInAddressBook(),
82  ];
83 
84  $requestData = [
85  'cartId' => $cartId,
86  'address' => $data
87  ];
88  } else {
89  $requestData = [
90  'address' => [
91  'country_id' => "US",
92  'postcode' => null,
93  'region' => null,
94  'region_id' => null
95  ],
96  ];
97  }
98  // Cart must be anonymous (see fixture)
99  $this->assertEmpty($quote->getCustomerId());
100 
101  $result = $this->_webApiCall($serviceInfo, $requestData);
102  $this->assertNotEmpty($result);
103  $this->assertEquals(1, count($result));
104  foreach ($result as $rate) {
105  $this->assertEquals("flatrate", $rate['carrier_code']);
106  $this->assertEquals(0, $rate['amount']);
107  }
108  }
109 }
_webApiCall( $serviceInfo, $arguments=[], $webApiAdapterCode=null, $storeCode=null, $integration=null)
$quote
$address
Definition: customer.php:38
$cartId
Definition: quote.php:22