/** * * The test data provider (gets the data for the different tests) * @param string $className - The class name * @param string $procedureName - The current method (test) name * @return array<array>(); */ public function provider($className, $procedureName) { //print("In provider for $className, $procedureName \n"); //Gets from the given class the class data file $class = get_class($this); $classFilePath = KAutoloader::getClassFilePath($class); $testClassDir = dirname($classFilePath); $dataFilePath = $testClassDir . DIRECTORY_SEPARATOR . "testsData/{$className}.data"; KalturaLog::debug("The data file path [" . $dataFilePath . "]"); if (file_exists($dataFilePath)) { $simpleXML = kXml::openXmlFile($dataFilePath); } else { //TODO: Give notice or create the file don't throw an exception throw new Exception("Data file [{$dataFilePath}] not found"); } $inputsForTestProcedure = array(); foreach ($simpleXML->TestProcedureData as $xmlTestProcedureData) { if ($xmlTestProcedureData["testProcedureName"] != $procedureName) { continue; } foreach ($xmlTestProcedureData->TestCaseData as $xmlTestCaseData) { $testCaseInstanceInputs = array(); foreach ($xmlTestCaseData->Input as $input) { $object = KalturaTestDataObject::generatefromXml($input); //Add the new input to the test case instance data $testCaseInstanceInputs[] = $object; } foreach ($xmlTestCaseData->OutputReference as $output) { $object = KalturaTestDataObject::generatefromXml($output); //Add the new output reference to the test case instance data $testCaseInstanceInputs[] = $object; } //Add the test case into the test procedure data $inputsForTestProcedure[] = $testCaseInstanceInputs; } } KalturaLog::info("Tests data provided Before transformation to objects: \n[" . print_r($inputsForTestProcedure, true) . "]"); $inputsForTestProcedure = $this->transformToObjects($inputsForTestProcedure); KalturaLog::info("Tests data provided [" . print_r($inputsForTestProcedure, true) . "]"); return $inputsForTestProcedure; }
/** * * Generates a new TestCaseInstanceData object from a given simpleXLMElement * @param SimpleXMLElement $simpleXMLElement * @return TestCaseInstanceData - New test case instance data object */ public function fromDataXml(SimpleXMLElement $testCaseInstanceXml) { if (isset($testCaseInstanceXml["testCaseInstanceName"])) { $this->testCaseInstanceName = (string) $testCaseInstanceXml["testCaseInstanceName"]; } foreach ($testCaseInstanceXml->Input as $input) { $testDataObject = KalturaTestDataObject::generatefromXml($input); $this->input[] = $testDataObject; } foreach ($testCaseInstanceXml->OutputReference as $outputReference) { $testDataObject = KalturaTestDataObject::generatefromXml($outputReference); $this->outputReference[] = $testDataObject; } }