/** * @magentoAppIsolation enabled */ public function testGetSelectedAttributesInfoForStore() { $attributes = $this->_model->getConfigurableAttributesAsArray($this->_product); $attribute = reset($attributes); $optionValueId = $attribute['values'][0]['value_index']; $this->_product->addCustomOption('attributes', serialize([$attribute['attribute_id'] => $optionValueId])); $configurableAttr = $this->_model->getConfigurableAttributes($this->_product); $attribute = $configurableAttr->getFirstItem(); $attribute->getProductAttribute()->setStoreLabel('store label'); $info = $this->_model->getSelectedAttributesInfo($this->_product); $this->assertEquals([['label' => 'store label', 'value' => 'Option 1']], $info); }
/** * @magentoAppArea frontend */ public function testReset() { $model = $this->_model; $this->_assertEmpty($model); $this->_model->setData('key', 'value'); $this->_model->reset(); $this->_assertEmpty($model); $this->_model->setOrigData('key', 'value'); $this->_model->reset(); $this->_assertEmpty($model); $this->_model->addCustomOption('key', 'value'); $this->_model->reset(); $this->_assertEmpty($model); $this->_model->canAffectOptions(true); $this->_model->reset(); $this->_assertEmpty($model); }
/** * @covers \Magento\Catalog\Model\Product::addCustomOption * @covers \Magento\Catalog\Model\Product::setCustomOptions * @covers \Magento\Catalog\Model\Product::getCustomOptions * @covers \Magento\Catalog\Model\Product::getCustomOption * @covers \Magento\Catalog\Model\Product::hasCustomOptions */ public function testCustomOptionsApi() { $this->assertEquals([], $this->_model->getCustomOptions()); $this->assertFalse($this->_model->hasCustomOptions()); $this->_model->setId(99); $this->_model->addCustomOption('one', 'value1'); $option = $this->_model->getCustomOption('one'); $this->assertInstanceOf('Magento\\Framework\\DataObject', $option); $this->assertEquals($this->_model->getId(), $option->getProductId()); $this->assertSame($option->getProduct(), $this->_model); $this->assertEquals('one', $option->getCode()); $this->assertEquals('value1', $option->getValue()); $this->assertEquals(['one' => $option], $this->_model->getCustomOptions()); $this->assertTrue($this->_model->hasCustomOptions()); $this->_model->setCustomOptions(['test']); $this->assertTrue(is_array($this->_model->getCustomOptions())); }
/** * @magentoAppArea frontend */ public function testReset() { $model = $this->_model; $this->_assertEmpty($model); $this->_model->setData('key', 'value'); $this->_model->reset(); $this->_assertEmpty($model); $this->_model->setOrigData('key', 'value'); $this->_model->reset(); $this->_assertEmpty($model); $this->_model->addCustomOption('key', 'value'); $this->_model->reset(); $this->_assertEmpty($model); $this->_model->addOption(\Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create('Magento\\Catalog\\Model\\Product\\Option')); $this->_model->reset(); $this->_assertEmpty($model); $this->_model->canAffectOptions(true); $this->_model->reset(); $this->_assertEmpty($model); }
/** * {@inheritdoc} */ public function addCustomOption($code, $value, $product = null) { $pluginInfo = $this->pluginList->getNext($this->subjectType, 'addCustomOption'); if (!$pluginInfo) { return parent::addCustomOption($code, $value, $product); } else { return $this->___callPlugins('addCustomOption', func_get_args(), $pluginInfo); } }