/** * * Generates a new KalturaTestsFailures object from a given failure file path * @param string $failureFilePath */ public function fromXml($failureFilePath) { $simpleXML = kXml::openXmlFile($failureFilePath); foreach ($simpleXML->Failures->UnitTestFailures as $unitTestFailureXml) { $this->testCaseFailures[] = KalturaTestCaseFailure::generateFromXml($unitTestFailureXml); } }
/** * * Sets the given object's given property value * @param testCaseFailure $failure * @param string $rootNodeName - default to 'data' * @return DOMDocument - the xml for the given error */ public static function toXml(KalturaTestCaseFailure $failure, $rootNodeName = 'data') { if (count($failure->testCaseFailures) == 0) { return ""; } $xml = new DOMDocument(1.0); $rootNode = $xml->createElement($rootNodeName); $xml->appendChild($rootNode); $inputsNode = $xml->createElement("Inputs"); foreach ($failure->testCaseInput as $inputKey => $inputValue) { //TODO: add support for non propel objects $node = $xml->createElement("Input"); $type = gettype($inputValue); if (class_exists(get_class($inputValue))) { $type = get_class($inputValue); } $node->setAttribute("type", $type); $id = $inputValue; if ($inputValue instanceof BaseObject) { $id = $inputValue->getId(); } $node->setAttribute($type . "Id", $id); $inputsNode->appendChild($node); } $failuresNode = $xml->createElement("Failures"); foreach ($failure->testCaseFailures as $kalturaFailure) { $failureNode = $xml->createElement("Failure"); $fieldNode = $xml->createElement("Field", $kalturaFailure->field); $failureNode->appendChild($fieldNode); $outputReferenceNode = $xml->createElement("OutputReference"); $failureNode->appendChild($outputReferenceNode); KalturaTestCaseFailure::setElementValue($xml, $outputReferenceNode, $kalturaFailure->outputReferenceValue, $kalturaFailure->field); $actualOutputNode = $xml->createElement("ActualOutput"); $failureNode->appendChild($actualOutputNode); KalturaTestCaseFailure::setElementValue($xml, $actualOutputNode, $kalturaFailure->actualValue, $kalturaFailure->field); if ($kalturaFailure->assert != null) { $assertNode = $xml->createElement("Assert"); $failureNode->appendChild($assertNode); KalturaTestCaseFailure::setElementValue($xml, $assertNode, $kalturaFailure->assert); } if ($kalturaFailure->message != null) { $messageNode = $xml->createElement("Message"); $failureNode->appendChild($messageNode); KalturaTestCaseFailure::setElementValue($xml, $messageNode, $kalturaFailure->message); } $failuresNode->appendChild($failureNode); } $rootNode->appendChild($inputsNode); $rootNode->appendChild($failuresNode); //pass back DomElement object return $xml; }