public function testIsDifferentFromDefaultWithArrays() { $path = 'design/head/default_title'; $this->fallbackResolver->expects($this->once())->method('getFallbackScope')->with('website', 1)->willReturn(['default', 0]); $this->appConfig->expects($this->once())->method('getValue')->with($path, 'default', 0)->willReturn([['qwe' => 123]]); $this->valueProcessor->expects($this->atLeastOnce())->method('process')->willReturnArgument(0); $this->assertTrue($this->valueChecker->isDifferentFromDefault([['sdf' => 1]], 'website', 1, ['path' => $path])); }
public function testIsDifferentFromDefaultWithWebsiteScope() { $valueChecker = new ValueChecker($this->fallbackResolver, $this->appConfig, $this->valueProcessor); $this->fallbackResolver->expects($this->once())->method('getFallbackScope')->with('website', 1)->willReturn(['default', 0]); $this->appConfig->expects($this->once())->method('getValue')->with('design/head/default_title', 'default', 0)->willReturn(''); $this->valueProcessor->expects($this->atLeastOnce())->method('process')->willReturnArgument(0); $this->assertTrue($valueChecker->isDifferentFromDefault('value', 'website', 1, 'design/head/default_title')); }
/** * Set design config to storage * * @param DesignConfigInterface $designConfig * @return void */ public function save(DesignConfigInterface $designConfig) { $fieldsData = $designConfig->getExtensionAttributes()->getDesignConfigData(); /* @var $saveTransaction \Magento\Framework\DB\Transaction */ $saveTransaction = $this->transactionFactory->create(); /* @var $deleteTransaction \Magento\Framework\DB\Transaction */ $deleteTransaction = $this->transactionFactory->create(); foreach ($fieldsData as $fieldData) { /** @var ValueInterface|Value $backendModel */ $backendModel = $this->backendModelFactory->create(['value' => $fieldData->getValue(), 'scope' => $designConfig->getScope(), 'scopeId' => $designConfig->getScopeId(), 'config' => $fieldData->getFieldConfig()]); if ($fieldData->getValue() !== null && $this->valueChecker->isDifferentFromDefault($fieldData->getValue(), $designConfig->getScope(), $designConfig->getScopeId(), $fieldData->getFieldConfig()['path'])) { $saveTransaction->addObject($backendModel); } elseif (!$backendModel->isObjectNew()) { $deleteTransaction->addObject($backendModel); } } $saveTransaction->save(); $deleteTransaction->delete(); }