Ejemplo n.º 1
0
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;
}