/** * Normalize the requirements * * @param Family $family * * @return array */ protected function normalizeRequirements(Family $family) { $required = array(); foreach ($family->getAttributeRequirements() as $requirement) { $channelCode = $requirement->getChannel()->getCode(); if (!isset($required[$channelCode])) { $required[$channelCode] = array(); } if ($requirement->isRequired()) { $required[$channelCode][] = $requirement->getAttribute()->getCode(); } } return $required; }
/** * 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 getAttributeRequirements() { $this->__initializer__ && $this->__initializer__->__invoke($this, 'getAttributeRequirements', array()); return parent::getAttributeRequirements(); }