/** * * Add a KalturaTestProcedureData into the test case procedures data * @param KalturaTestProcedureData $testProcedureData */ public function addTestProcedureData(KalturaTestProcedureData $testProcedureData) { if ($this->testProceduresData == null) { $this->testProceduresData = array(); } $this->testProceduresData[$testProcedureData->getProcedureName()] = $testProcedureData; }
/** * sets the KalturaTestDataSourceFile object from simpleXMLElement (the source xml of the data) * @param SimpleXMLElement $simpleXMLElement * * @return None, sets the given object */ public function fromSourceXML(SimpleXMLElement $simpleXMLElement) { //For each test file foreach ($simpleXMLElement->TestCaseData as $xmlTestDataFile) { //Create new test file obejct $testDataFile = new KalturaTestCaseDataFile(trim((string) $xmlTestDataFile["testCaseName"])); foreach ($xmlTestDataFile->TestProcedureData as $xmlTestProcedureData) { $testProcedureData = new KalturaTestProcedureData(); if (isset($xmlTestProcedureData["testProcedureName"])) { $testProcedureData->setProcedureName($xmlTestProcedureData["testProcedureName"]); } //TODO: maybe get this from procedure / test case instance config $testCaseNum = 0; //For each test data (in this file) foreach ($xmlTestProcedureData->TestCaseData as $xmlTestCaseData) { $testCaseName = $testProcedureData->getProcedureName() . " with data set #{$testCaseNum}"; $testCaseNum++; //User defined test cases name if (isset($xmlTestCaseData["testCaseInstanceName"])) { $testCaseName = $xmlTestCaseData["testCaseInstanceName"]; $testCaseNum--; } //Create new unit test data $testCaseData = new KalturaTestCaseInstanceData($testCaseName); //For each input create the needed Kaltura object identifier foreach ($xmlTestCaseData->Input as $input) { $additionalData = kXml::getAttributesAsArray($input); $testInputDataObjectIdentifier = new KalturaTestDataObject((string) $input["type"], $additionalData); $testCaseData->addInput($testInputDataObjectIdentifier); } //And for each output reference create the needed kaltura object identifier foreach ($xmlTestCaseData->OutputReference as $outputReference) { $additionalData = kXml::getAttributesAsArray($outputReference); $testOutputReferenceDataObjectIdentifier = new KalturaTestDataObject((string) $outputReference["type"], $additionalData); $testCaseData->addOutputReference($testOutputReferenceDataObjectIdentifier); } //Add the new test case data into the test procedure data. $testProcedureData->addTestCaseInstance($testCaseData); } //Add the new procedure test data into the test file. $testDataFile->addTestProcedureData($testProcedureData); } $this->testFiles[] = $testDataFile; } }
/** * * Returns the given KalturaTestProcedureData as a DomDocument * @param KalturaTestProcedureData $testProcedureData */ public static function toXml(KalturaTestProcedureData $testProcedureData) { $dom = new DOMDocument("1.0"); $testProcedureDataElement = $dom->createElement("TestProcedureData"); $testProcedureDataElement->setAttribute("testProcedureName", $testProcedureData->getProcedureName()); $dom->appendChild($testProcedureDataElement); foreach ($testProcedureData->getTestCasesData() as $testCaseData) { $domTestCaseData = KalturaTestCaseInstanceData::toXml($testCaseData); kXml::appendDomToElement($domTestCaseData, $testProcedureDataElement, $dom); } return $dom; }