/**
  * @return void
  */
 protected function validateEavAttributes()
 {
     $sourceAttrbutes = $this->initialData->getAttributes('source');
     foreach ($this->helper->getDestinationRecords('eav_attribute') as $attribute) {
         if (isset($sourceAttrbutes[$attribute['attribute_id']]) && $sourceAttrbutes[$attribute['attribute_id']]['attribute_code'] != $attribute['attribute_code']) {
             $this->errors[] = 'Source and Destination attributes mismatch. Attribute id: ' . $attribute['attribute_id'];
         }
         foreach (['attribute_model', 'backend_model', 'frontend_model', 'source_model'] as $field) {
             if ($attribute[$field] !== null && !class_exists($attribute[$field])) {
                 $this->errors[] = 'Incorrect value: ' . $attribute[$field] . ' in: eav_attribute.' . $field . ' for attribute_code=' . $attribute['attribute_code'];
             }
         }
     }
 }
 /**
  * @covers \Migration\Step\Eav\InitialData::Init
  * @covers \Migration\Step\Eav\InitialData::initAttributes
  * @covers \Migration\Step\Eav\InitialData::initAttributeSets
  * @covers \Migration\Step\Eav\InitialData::initAttributeGroups
  * @covers \Migration\Step\Eav\InitialData::getAttributes
  * @covers \Migration\Step\Eav\InitialData::getAttributeSets
  * @covers \Migration\Step\Eav\InitialData::getAttributeGroups
  * @return void
  */
 public function testInit()
 {
     $dataAttributes = ['source' => ['id_1' => 'value_1', 'id_2' => 'value_2'], 'dest' => ['id_1' => 'value_1', 'id_2' => 'value_2']];
     $attributeSets = ['attr_set_1', 'attr_set_2'];
     $attributeGroups = ['attr_group_1', 'attr_group_2'];
     $this->helper->expects($this->once())->method('getSourceRecords')->willReturnMap([['eav_attribute', ['attribute_id'], $dataAttributes['source']]]);
     $this->helper->expects($this->any())->method('getDestinationRecords')->willReturnMap([['eav_attribute', ['entity_type_id', 'attribute_code'], $dataAttributes['dest']], ['eav_attribute_set', ['attribute_set_id'], $attributeSets], ['eav_attribute_group', ['attribute_set_id', 'attribute_group_name'], $attributeGroups]]);
     $this->initialData->init();
     foreach ($dataAttributes as $resourceType => $resourceData) {
         $this->assertEquals($resourceData, $this->initialData->getAttributes($resourceType));
     }
     $this->assertEquals($attributeSets, $this->initialData->getAttributeSets('dest'));
     $this->assertEquals($attributeGroups, $this->initialData->getAttributeGroups('dest'));
 }
Example #3
0
 /**
  * @param int $sourceAttributeId
  * @return mixed
  */
 protected function getDestinationAttributeId($sourceAttributeId)
 {
     $id = null;
     $key = null;
     if (isset($this->initialData->getAttributes('source')[$sourceAttributeId])) {
         $key = $this->initialData->getAttributes('source')[$sourceAttributeId]['entity_type_id'] . '-' . $this->initialData->getAttributes('source')[$sourceAttributeId]['attribute_code'];
     }
     if ($key && isset($this->initialData->getAttributes('dest')[$key])) {
         $id = $this->initialData->getAttributes('dest')[$key]['attribute_id'];
     }
     return $id;
 }