/** * Returns options adopted to compare * * @param Item $item * @return array */ public function getOptions(Item $item) { $options = []; foreach ($item->getOptions() as $option) { $options[$option->getCode()] = $this->getOptionValues($option->getValue()); } return $options; }
public function testUpdateQtyOption() { $productMock = $this->generateProductMock(self::PRODUCT_ID, self::PRODUCT_TYPE, self::PRODUCT_SKU, self::PRODUCT_NAME, self::PRODUCT_WEIGHT, self::PRODUCT_TAX_CLASS_ID, self::PRODUCT_COST); $typeInstanceMock = $this->getMockForAbstractClass('Magento\\Catalog\\Model\\Product\\Type\\AbstractType', [], '', false, false, true, ['updateQtyOption']); $productMock->expects($this->once())->method('getTypeInstance')->will($this->returnValue($typeInstanceMock)); $optionMock = $this->getMockBuilder('Magento\\Framework\\Object')->disableOriginalConstructor()->setMethods(['getProduct'])->getMock(); $optionMock->expects($this->once())->method('getProduct')->will($this->returnValue($productMock)); $quantityValue = 12; $this->model->setProduct($productMock); $typeInstanceMock->expects($this->once())->method('updateQtyOption')->with($this->model->getOptions(), $optionMock, $quantityValue, $productMock); $this->assertEquals($this->model, $this->model->updateQtyOption($optionMock, $quantityValue)); }