/** * @param ResourceModel\Record $destinationRecord * @param array $recordData * @return ResourceModel\Record */ protected function transformRecord($destinationRecord, $recordData) { foreach ($destinationRecord->getFields() as $recordField) { $destinationRecord->setValue($recordField, $recordData[$recordField]); } return $destinationRecord; }
/** * @param Record $from * @param Record $to * @return void */ protected function copy(Record $from, Record $to) { $sourceDocumentName = $this->sourceDocument->getName(); $data = $from->getData(); $sourceFields = $from->getFields(); $destinationFields = $to->getFields(); $diff = array_diff($sourceFields, $destinationFields); foreach ($diff as $field) { if (!$this->mapReader->isFieldIgnored($sourceDocumentName, $field, MapInterface::TYPE_SOURCE)) { $fieldMap = $this->mapReader->getFieldMap($sourceDocumentName, $field, MapInterface::TYPE_SOURCE); $data[$fieldMap] = $from->getValue($field); } unset($data[$field]); } foreach ($data as $key => $value) { $to->setValue($key, $value); } }
/** * {@inheritdoc} */ public function validate(Record $record) { if (!in_array($this->field, $record->getFields())) { throw new Exception("{$this->field} field not found in the record."); } }
/** * @throws \Migration\Exception * @return void */ public function testGetFieldsInvalid() { $this->record->setStructure(null); $this->setExpectedException('Exception', 'Structure not set'); $this->record->getFields(); }