/** * * Sets the test params and values for the given action param * @param string $actionParam * @param array $testParams - passed by reference * @param array $testValues - passed by reference * @param array $validateValues - passed by reference * @param boolean $isBase */ protected function setTestParamsAndValues(KalturaParamInfo $actionParam, &$testParams, &$testValues, &$validateValues, $isBase) { $paramType = $actionParam->getType(); $paramName = $actionParam->getName(); KalturaLog::debug("paramName [{$paramName}] paramType [{$paramType}]"); $isParamContainsId = substr_count($paramName, "id") > 0 || substr_count($paramName, "Id") > 0; if ($actionParam->isSimpleType() || $actionParam->isEnum() || $actionParam->isStringEnum() || $actionParam->isDynamicEnum()) { $paramDefaultValue = $actionParam->getDefaultValue(); $this->writeIni("test1.{$paramName} = " . $paramDefaultValue); } elseif ($actionParam->isFile()) { $this->writeIni("test1.{$paramName}.objectType = file"); $this->writeIni("test1.{$paramName}.path = "); } else { if ($paramName == 'type') { $this->writeIni("test1.objType.{$paramName} = {$paramType}"); } else { $this->writeIni("test1.{$paramName}.objectType = {$paramType}"); } $actionParamProperties = $actionParam->getTypeReflector()->getProperties(); foreach ($actionParamProperties as $actionParamProperty) { if ($actionParamProperty->isReadOnly() || $actionParamProperty->isInsertOnly()) { continue; } $propertyType = $actionParamProperty->getType(); $propertyName = $actionParamProperty->getName(); if ($actionParamProperty->isSimpleType() || $actionParamProperty->isEnum() || $actionParamProperty->isStringEnum() || $actionParamProperty->isDynamicEnum()) { $defaultValue = $actionParamProperty->getDefaultValue(); $this->writeIni("test1.{$paramName}.{$propertyName} = " . $defaultValue); } elseif ($actionParamProperty->isFile()) { $this->writeIni("test1.{$paramName}.{$propertyName}.objectType = file"); $this->writeIni("test1.{$paramName}.{$propertyName}.path = "); } elseif (!$actionParamProperty->isAbstract()) { if ($propertyName == 'type') { $this->writeIni("test1.{$paramName}.objType.{$propertyName} = {$propertyType}"); } else { $this->writeIni("test1.{$paramName}.{$propertyName}.objectType = {$propertyType}"); } } } } $paramDesc = strlen($actionParam->getDescription()) ? ' ' . $actionParam->getDescription() : ''; $this->write("\t * @param {$paramType} \${$paramName}{$paramDesc}", $isBase); if (!$actionParam->isComplexType() || $actionParam->isEnum() || $actionParam->isStringEnum() || $actionParam->isDynamicEnum()) { $testParam = "\${$paramName}"; } else { $testParam = "{$paramType} \${$paramName}"; } if ($actionParam->isOptional()) { if ($actionParam->isSimpleType()) { $defaultValue = $actionParam->getDefaultValue(); if ($defaultValue === "false") { $testParam .= " = false"; } else { if ($defaultValue === "true") { $testParam .= " = true"; } else { if ($defaultValue === "null") { $testParam .= " = null"; } else { if ($paramType == "string") { $testParam .= " = \"{$defaultValue}\""; } else { if ($paramType == "int" || $paramType == "bigint") { if ($defaultValue == "") { $testParam .= " = \"\""; } else { $testParam .= " = {$defaultValue}"; } } } } } } } else { $testParam .= " = null"; } } //Adds the new param / value to the test params / values $testParams[] = $testParam; $testValues[] = "\${$paramName}"; if ($isBase) { $validateValues[] = "\${$paramName}"; } }