コード例 #1
0
ファイル: Converter.php プロジェクト: Doability/magento2dev
 /**
  * @param array $conditionArray
  * @return \Magento\CatalogRule\Api\Data\ConditionInterface
  * @SuppressWarnings(PHPMD.NPathComplexity)
  */
 public function arrayToDataModel(array $conditionArray)
 {
     /** @var \Magento\CatalogRule\Api\Data\ConditionInterface $ruleCondition */
     $ruleCondition = $this->ruleConditionFactory->create();
     $ruleCondition->setType($conditionArray['type']);
     $ruleCondition->setAggregator(isset($conditionArray['aggregator']) ? $conditionArray['aggregator'] : false);
     $ruleCondition->setAttribute(isset($conditionArray['attribute']) ? $conditionArray['attribute'] : false);
     $ruleCondition->setOperator(isset($conditionArray['operator']) ? $conditionArray['operator'] : false);
     $ruleCondition->setValue(isset($conditionArray['value']) ? $conditionArray['value'] : false);
     $ruleCondition->setIsValueParsed(isset($conditionArray['is_value_parsed']) ? $conditionArray['is_value_parsed'] : false);
     if (isset($conditionArray['conditions']) && is_array($conditionArray['conditions'])) {
         $conditions = [];
         foreach ($conditionArray['conditions'] as $condition) {
             $conditions[] = $this->arrayToDataModel($condition);
         }
         $ruleCondition->setConditions($conditions);
     }
     return $ruleCondition;
 }
コード例 #2
0
 public function testArrayToDataModel()
 {
     $array = ['type' => 'type', 'attribute' => 'attr', 'operator' => 'operator', 'value' => 'value', 'is_value_parsed' => true, 'aggregator' => 'all', 'conditions' => [['type' => 'child-type', 'attribute' => 'child-attr', 'operator' => 'child-operator', 'value' => 'child-value', 'is_value_parsed' => false, 'aggregator' => 'any']]];
     $conditionMock = $this->getMock('\\Magento\\CatalogRule\\Api\\Data\\ConditionInterface');
     $conditionChildMock = $this->getMock('\\Magento\\CatalogRule\\Api\\Data\\ConditionInterface');
     $this->conditionFactoryMock->expects($this->at(0))->method('create')->willReturn($conditionMock);
     $this->conditionFactoryMock->expects($this->at(1))->method('create')->willReturn($conditionChildMock);
     $conditionMock->expects($this->once())->method('setType')->with('type')->willReturnSelf();
     $conditionMock->expects($this->once())->method('setAggregator')->with('all')->willReturnSelf();
     $conditionMock->expects($this->once())->method('setAttribute')->with('attr')->willReturnSelf();
     $conditionMock->expects($this->once())->method('setOperator')->with('operator')->willReturnSelf();
     $conditionMock->expects($this->once())->method('setIsValueParsed')->with(true)->willReturnSelf();
     $conditionMock->expects($this->once())->method('setConditions')->with([$conditionChildMock])->willReturnSelf();
     $conditionChildMock->expects($this->once())->method('setType')->with('child-type')->willReturnSelf();
     $conditionChildMock->expects($this->once())->method('setAggregator')->with('any')->willReturnSelf();
     $conditionChildMock->expects($this->once())->method('setAttribute')->with('child-attr')->willReturnSelf();
     $conditionChildMock->expects($this->once())->method('setOperator')->with('child-operator')->willReturnSelf();
     $conditionChildMock->expects($this->once())->method('setIsValueParsed')->with(false)->willReturnSelf();
     $this->assertEquals($conditionMock, $this->model->arrayToDataModel($array));
 }