/**
  * {@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;
 }
Пример #2
0
 /**
  * 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);
 }