29 public function testGetAll()
32 $quote = $this->objectManager->create(\
Magento\Quote\Model\Quote::class)->load(
40 'resourcePath' => self::RESOURCE_PATH .
$quoteId .
'/items',
46 'operation' => self::SERVICE_NAME .
'GetList',
52 $bundleOption =
$quote->getItemById(
$response[
'item_id'])->getBuyRequest()->getBundleOption();
53 $bundleOptionQty =
$quote->getItemById(
$response[
'item_id'])->getBuyRequest()->getBundleOptionQty();
54 $actualOptions =
$response[
'product_option'][
'extension_attributes'][
'bundle_options'];
56 $this->assertEquals(array_keys($bundleOption), array_column($actualOptions,
'option_id'));
57 $this->assertEquals($bundleOptionQty, array_column($actualOptions,
'option_qty',
'option_id'));
58 foreach ($actualOptions as
$option) {
60 $expectedSelections = is_array($bundleOption[
$id]) ? $bundleOption[
$id] : [$bundleOption[
$id]];
61 $this->assertEquals($expectedSelections,
$option[
'option_selections']);
69 public function testAddItem()
72 $product = $this->objectManager->create(\
Magento\Catalog\Model\Product::class)->load(3);
73 $quote = $this->objectManager->create(\
Magento\Quote\Model\Quote::class)->load(
74 'test_order_item_with_items',
79 $bundleProductOptions =
$product->getExtensionAttributes()->getBundleProductOptions();
80 $bundleOptionId = $bundleProductOptions[0]->getId();
81 $optionSelections = $bundleProductOptions[0]->getProductLinks()[0]->getId();
83 'bundle_option' => [$bundleOptionId => [$optionSelections]],
84 'bundle_option_qty' => [$bundleOptionId => 1],
86 'original_qty' => $itemQty
97 'resourcePath' => self::RESOURCE_PATH .
$cartId .
'/items',
103 'operation' => self::SERVICE_NAME .
'Save',
109 "sku" => $productSku,
112 "product_option" => [
113 "extension_attributes" => [
114 "bundle_options" => [
116 "option_id" => (int)$bundleOptionId,
117 "option_qty" => $itemQty,
118 "option_selections" => [(
int)$optionSelections]
133 public function testUpdate()
136 $quote = $this->objectManager->create(\
Magento\Quote\Model\Quote::class)->load(
158 $option[
'option_selections'] = [$selectionsCollection->getLastItem()->getSelectionId()];
164 'resourcePath' => self::RESOURCE_PATH .
$cartId .
'/items/' . $itemId,
170 'operation' => self::SERVICE_NAME .
'Save',
178 "item_id" => $itemId,
179 "product_option" => [
180 "extension_attributes" => [
188 $quoteUpdated = $this->objectManager->create(\
Magento\Quote\Model\Quote::class)->load(
192 $cartItems = $quoteUpdated->getAllVisibleItems();
193 $buyRequest = $cartItems[0]->getBuyRequest()->toArray();
195 $this->assertEquals(1, count($cartItems));
199 $optionQty =
$option[
'option_qty'];
200 $optionSelections =
$option[
'option_selections'];
_webApiCall( $serviceInfo, $arguments=[], $webApiAdapterCode=null, $storeCode=null, $integration=null)
foreach($product->getExtensionAttributes() ->getBundleProductOptions() as $option) $buyRequest
static getObjectManager()