private function saveAllChildrenFromXMLFieldChange($parent_id, SimpleXMLElement $xml) { foreach ($xml->value as $value) { $artifact_id = (int) $value; if ($artifact_id) { $this->children_collector->addChild($artifact_id, $parent_id); } } }
private function appendValueToFieldChangeNode(Tracker_ArtifactLinkInfo $artifact_link_info, $index, $userdata) { $field_xml = $userdata['field_xml']; $artifact = $userdata['artifact']; $children_trackers = $userdata['children_trackers']; if ($this->canExportLinkedArtifact($artifact_link_info, $children_trackers)) { $field_xml->addChild('value', $artifact_link_info->getArtifactId()); $this->children_collector->addChild($artifact_link_info->getArtifactId(), $artifact->getId()); } }
public function itCreatesAnArtifactLinkIfThereIsOneChild() { $this->children_collector->addChild(123, 100); $xml = simplexml_load_string('<?xml version="1.0" encoding="UTF-8"?> <artifacts> <artifact id="100" tracker_id="22"> <changeset> <field_change field_name="content" type="art_link"> <value>123</value> </field_change> </changeset> </artifact> <artifact id="123" tracker_id="23"> <changeset> <field_change field_name="content" type="art_link"> <value/> </field_change> </changeset> </artifact> </artifacts>'); stub($this->artifacts_imported_mapping)->get(100)->returns($this->root_artifact->getId()); stub($this->artifacts_imported_mapping)->get(123)->returns($this->created_artifact->getId()); stub($this->artifacts_imported_mapping)->getOriginal($this->root_artifact->getId())->returns(100); stub($this->artifacts_imported_mapping)->getOriginal($this->created_artifact->getId())->returns(123); $fields_data = array($this->field_id => array(Tracker_FormElement_Field_ArtifactLink::NEW_VALUES_KEY => "1023")); expect($this->root_artifact)->createNewChangeset($fields_data, '', $this->user, false, Tracker_Artifact_Changeset_Comment::TEXT_COMMENT)->once(); $this->importer->importChildren($this->artifacts_imported_mapping, $xml, 'whatever', $this->root_artifact, $this->user); }