public function testUpdate()
 {
     $product1Sku = 'sku1';
     $productOption1Sku = 'productOption1Sku';
     $productOption2Sku = 'productOption2Sku';
     $product1Options = [$this->productOption1, $this->productOption2];
     $product2Options = [$this->productOption1];
     $this->productRepository->expects($this->once())->method('get')->with($product1Sku, true)->will($this->returnValue($this->product));
     $this->product->expects($this->once())->method('getTypeId')->will($this->returnValue(ProductType::TYPE_BUNDLE));
     $this->optionReadService->expects($this->once())->method('getList')->with($product1Sku)->will($this->returnValue($product1Options));
     $this->productData->expects($this->once())->method('getCustomAttribute')->with('bundle_product_options')->will($this->returnValue($this->attributeValue));
     $this->attributeValue->expects($this->any())->method('getValue')->will($this->returnValue($product2Options));
     $this->productOption1->expects($this->any())->method('getId')->will($this->returnValue($productOption1Sku));
     $this->productOption2->expects($this->any())->method('getId')->will($this->returnValue($productOption2Sku));
     $this->optionWriteService->expects($this->once())->method('remove')->with($product1Sku, $productOption2Sku)->will($this->returnValue(1));
     $this->assertEquals($product1Sku, $this->saveProcessor->update($product1Sku, $this->productData));
 }
Exemple #2
0
 /**
  * @param Option $option
  * @param OptionModel $optionModel
  * @return OptionModel
  */
 public function getModelFromData(Option $option, OptionModel $optionModel)
 {
     $newOptionModel = $this->optionFactory->create();
     $newOptionModel->setData($optionModel->getData())->addData($option->__toArray())->setId($optionModel->getId())->setDefaultTitle(is_null($option->getTitle()) ? $optionModel->getTitle() : $option->getTitle());
     return $newOptionModel;
 }
 /**
  * Compare two options and determine if they are equal
  *
  * @param Option $firstOption
  * @param Option $secondOption
  * @return int
  */
 private function compareOptions(Option $firstOption, Option $secondOption)
 {
     if ($firstOption->getId() == $secondOption->getId()) {
         return 0;
     } else {
         return 1;
     }
 }