/** * {@inheritdoc} * * @return Family */ protected function createEntity(array $data) { $family = new Family(); $family->setCode('mycode'); foreach ($this->getLabels($data) as $locale => $label) { $translation = $family->getTranslation($locale); $translation->setLabel($label); $family->addTranslation($translation); } $codes = array('attribute1', 'attribute2', 'attribute3'); $attributes = array(); foreach ($codes as $code) { $attribute = new Attribute(); $attribute->setCode($code); $family->addAttribute($attribute); $attributes[] = $attribute; } $family->setAttributeAsLabel(current($attributes)); $channel1 = new Channel(); $channel1->setCode('channel1'); $channel2 = new Channel(); $channel2->setCode('channel2'); $requirements = array(array('attribute' => $attributes[0], 'channel' => $channel1, 'required' => true), array('attribute' => $attributes[1], 'channel' => $channel1, 'required' => true), array('attribute' => $attributes[2], 'channel' => $channel1, 'required' => false), array('attribute' => $attributes[0], 'channel' => $channel2, 'required' => true), array('attribute' => $attributes[1], 'channel' => $channel2, 'required' => false), array('attribute' => $attributes[2], 'channel' => $channel2, 'required' => true)); $attrRequirements = array(); foreach ($requirements as $requirement) { $attrRequirement = new AttributeRequirement(); $attrRequirement->setAttribute($requirement['attribute']); $attrRequirement->setChannel($requirement['channel']); $attrRequirement->setRequired($requirement['required']); $attrRequirements[] = $attrRequirement; } $family->setAttributeRequirements($attrRequirements); return $family; }
/** * Test related method */ public function testGetAttributeRequirements() { $mobileName = $this->getAttributeRequirementMock('mobile', 'name'); $mobileDescription = $this->getAttributeRequirementMock('mobile', 'description'); $ecommerceName = $this->getAttributeRequirementMock('ecommerce', 'name'); $ecommerceDescription = $this->getAttributeRequirementMock('ecommerce', 'description'); $this->family->setAttributeRequirements(array($mobileName, $mobileDescription, $ecommerceName, $ecommerceDescription)); $expectedAttrRequirements = array('name_mobile' => $mobileName, 'description_mobile' => $mobileDescription, 'name_ecommerce' => $ecommerceName, 'description_ecommerce' => $ecommerceDescription); $this->assertEquals($expectedAttrRequirements, $this->family->getAttributeRequirements()); // test add method $ipadName = $this->getAttributeRequirementMock('ipad', 'name'); $this->family->addAttributeRequirement($ipadName); $expectedAttrRequirements['name_ipad'] = $ipadName; $this->assertEquals($expectedAttrRequirements, $this->family->getAttributeRequirements()); }
/** * {@inheritDoc} */ public function setAttributeRequirements(array $requirements) { $this->__initializer__ && $this->__initializer__->__invoke($this, 'setAttributeRequirements', array($requirements)); return parent::setAttributeRequirements($requirements); }