示例#1
0
 /**
  *
  * 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}";
     }
 }