function test_Env_ParcelPoint($userData) { $result = default_value(); $start = microtime_float(); /* Initialisation */ $env = new Env_ParcelPoint(array("user" => $userData["login"], "pass" => $userData["password"], "key" => $userData["api_key"])); $env->setEnv('test'); $env->constructList = true; $env->getParcelPoint("dropoff_point", "SOGP-C3084"); $env->getParcelPoint("dropoff_point", "SOGP-C3159"); $env->getParcelPoint("dropoff_point", "SOGP-C3065"); $env->getParcelPoint("dropoff_point", "SOGP-C3137"); $env->getParcelPoint("pickup_point", "SOGP-C3059"); $env->getParcelPoint("pickup_point", "SOGP-C3210"); $env->getParcelPoint("pickup_point", "SOGP-C3138"); /* Reception test */ if ($env->curlError) { $result['reception'] = max($result['reception'], ERROR); $result['reception_info'][count($result['reception_info'])] = 'Error while sending the query'; } else { if ($env->respError) { $result['reception'] = max($result['reception'], ERROR); $result['reception_info'][count($result['reception_info'])] = 'Invalid query : ' . $userData["api_key"]; foreach ($env->respErrorsList as $message) { $result['reception_info'][count($result['reception_info'])] = $message['message']; } } else { $result['reception'] = max($result['reception'], OK); $result['reception_info'][count($result['reception_info'])] = 'Reception time : ' . (microtime_float() - $start) . 's'; } } /* Additionals test */ /* Test for the result structure */ $result['additionals'][0]['name'] = 'Structure'; $result['additionals'][0]['state'] = OK; if (count($env->points) != 2) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], WARNING); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '$points should contains 2 elements, contains ' . count($env->points) . ' instead'; } else { foreach ($env->points as $type => $points) { if (count($env->points[$type]) == 0) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], WARNING); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '$points["' . $type . '"] array is empty'; } else { foreach ($env->points[$type] as $x => $content) { if (!isset($env->points[$type][$x]['code'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"code" not defined in $points["' . $type . '"][' . $x . '] array'; } if (!isset($env->points[$type][$x]['name'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"name" not defined in $points["' . $type . '"][' . $x . '] array'; } if (!isset($env->points[$type][$x]['address'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"address" not defined in $points["' . $type . '"][' . $x . '] array'; } if (!isset($env->points[$type][$x]['city'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"city" not defined in $points["' . $type . '"][' . $x . '] array'; } if (!isset($env->points[$type][$x]['zipcode'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"zipcode" not defined in $points["' . $type . '"][' . $x . '] array'; } if (!isset($env->points[$type][$x]['country'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"country" not defined in $points["' . $type . '"][' . $x . '] array'; } if (!isset($env->points[$type][$x]['description'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"description" not defined in $points["' . $type . '"][' . $x . '] array'; } if (!isset($env->points[$type][$x]['schedule'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"days" not defined in $points["' . $type . '"][' . $x . '] array'; } else { if (count($env->points[$type][$x]['schedule']) != 7) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], WARNING); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"days" should contains 7 days info, but contains ' . count($env->contents[$x]['days']) . ' instead'; } } if (isset($env->points[$type][$x]['schedule'])) { foreach ($env->points[$type][$x]['schedule'] as $j => $day) { if (!isset($env->points[$type][$x]['schedule'][$j]['weekday'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], WARNING); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"weekday" not defined in $points["' . $type . '"][' . $x . ']["days"][' . $j . '] array'; } if (!isset($env->points[$type][$x]['schedule'][$j]['open_am'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], WARNING); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"open_am" not defined in $points["' . $type . '"][' . $x . ']["days"][' . $j . '] array'; } if (!isset($env->points[$type][$x]['schedule'][$j]['close_am'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], WARNING); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"close_am" not defined in $points["' . $type . '"][' . $x . ']["days"][' . $j . '] array'; } if (!isset($env->points[$type][$x]['schedule'][$j]['open_pm'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], WARNING); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"open_pm" not defined in $points["' . $type . '"][' . $x . ']["days"][' . $j . '] array'; } if (!isset($env->points[$type][$x]['schedule'][$j]['close_pm'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], WARNING); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"close_pm" not defined in $points["' . $type . '"][' . $x . ']["days"][' . $j . '] array'; } } } } } } } $result['duration'] = microtime_float() - $start; return $result; }