public function exportSingleTrackerToXml(SimpleXMLElement $xml_content, $tracker_id, PFUser $user, ZipArchive $archive) { $xml_field_mapping = array(); $xml_trackers = $xml_content->addChild('trackers'); $tracker = $this->tracker_factory->getTrackerById($tracker_id); if ($tracker->isActive()) { $tracker_xml = $xml_trackers->addChild('tracker'); $tracker->exportToXMLInProjectExportContext($tracker_xml, $xml_field_mapping); $this->artifact_xml_xport->export($tracker, $tracker_xml, $user, $archive); } $this->rng_validator->validate($xml_trackers, dirname(TRACKER_BASE_DIR) . '/www/resources/trackers.rng'); return $xml_trackers; }
public function itRaisesAnExceptionWhenThresholdIsReached() { $rng_validator = new XML_RNGValidator(); $artifact_factory = stub('Tracker_ArtifactFactory')->getArtifactsByTrackerId()->returns(array_fill(0, Tracker_Artifact_XMLExport::THRESHOLD + 1, null)); $can_bypass_threshold = false; $exporter = new Tracker_Artifact_XMLExport($rng_validator, $artifact_factory, $can_bypass_threshold); $xml_element = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?> <project />'); $this->expectException('Tracker_Artifact_XMLExportTooManyArtifactsException'); $archive = new ZipArchive(); $exporter->export(mock('Tracker'), $xml_element, mock('PFUser'), $archive); }