private function checkBasketSet(Basket\BasketSet $set) { foreach ($set->getItems() as $item) { $this->checkBasketVariantItem($item); } }
/** * @param BasketSet $basketSet * * @return $this */ public function updateItemSet(BasketSet $basketSet) { $items = $basketSet->getItems(); if (empty($items)) { throw new \InvalidArgumentException('BasketSet needs at least one item'); } $setItems = array(); foreach ($items as $subItem) { $item = array('variant_id' => $subItem->getVariantId(), 'app_id' => $subItem->getAppId()); $additionalData = $subItem->getAdditionalData(); if (!empty($additionalData)) { $this->checkAdditionData($additionalData); $item['additional_data'] = (array) $additionalData; } $setItems[] = $item; } $set = array('additional_data' => (array) $basketSet->getAdditionalData(), 'set_items' => $setItems); $setId = $basketSet->getId(); if ($setId) { $set['id'] = $setId; $this->updatedItems[$setId] = $set; } else { $this->updatedItems[] = $set; } return $this; }
/** * {@inheritdoc} * * @return Basket\BasketSet */ public function createBasketSet(stdClass $jsonObject, array $products) { return Basket\BasketSet::createFromJson($jsonObject, $this, $products); }
public function testAddItemSetToBasketWithProductID() { $ay = $this->getAY(); $basket = new Basket(); $set = new Basket\BasketSet('A123567', array('description' => 'test', 'image_url' => 'http://img-url')); $item = new Basket\BasketSetItem($this->getProductId(1)); $set->addItem($item); $basket->updateItemSet($set); $result = $ay->updateBasket($this->getSessionId(), $basket); $this->assertTrue($result->hasErrors()); }
/** * @expectedException \InvalidArgumentException * @expectedExceptionMessage image_url is required in additional data */ public function testSetAdditionalDataFailed() { $basketSet = new BasketSet('12', array('description' => 'test', 'image_url' => 'http://img-url')); $basketSet->setAdditionData(array('description' => 'test')); }