Subversion Repositories eFlore/Projets.eflore-projets

Compare Revisions

Ignore whitespace Rev 248 → Rev 251

/trunk/services/tests/0.1/chorodep/ChorodepObservationsTest.php
8,15 → 8,32
$this->service = 'observations';
}
 
public function testValeurChampPrecis() {
$ressources = array('');
public function testRecherche() {
$ressources = array();
$parametres = array();
$url = $this->creerUrl($ressources, $parametres);
$retour = $this->consulterJson($ressources, $parametres);
$this->assertNotEmpty($retour[0], 'données absentes');
$this->assertArrayHasKey('editeur', $retour[0], "Le json ne contient pas d'attribut : editeur. Voir : $url");
$this->assertEquals('Tela Botanica', $retour[0]['editeur'], "L'attribut 'editeur' devrait avoir la valeur 'Tela Botanica'. Voir : $url");
$this->assertArrayNotHasKey('langue', $retour[0], "Le json contient un attribut : langue. Voir : $url");
$this->assertNotEmpty($retour, print_r($retour, true));
$this->assertNotEmpty($retour['entete'], print_r($retour['entete'], true));
$this->assertEquals(20, $retour['entete']['total'], "L'attribut 'total' devrait avoir la valeur '20'. Voir : $url");
$this->assertEquals(20, count($retour['resultat']), "L'attribut 'total' devrait avoir la valeur '20'. Voir : $url");
$this->assertNotEmpty($retour['resultat']['74929:03'], print_r($retour['resultat']['74929:03'], true));
$this->assertArrayHasKey('type', $retour['resultat']['74929:03'], "Le json ne contient pas d'attribut : type. Voir : $url");
$this->assertEquals('chorologie', $retour['resultat']['74929:03']['type'], "L'attribut 'type' devrait avoir la valeur 'chorologie'. Voir : $url");
}
public function testMasqueStation() {
$ressources = array();
$parametres = array('masque.station' => '34', 'retour.format' => 'min');
$url = $this->creerUrl($ressources, $parametres);
$retour = $this->consulterJson($ressources, $parametres);
$this->assertNotEmpty($retour, 'pas de resultat'.print_r($retour, true));
$this->assertNotEmpty($retour['entete'], 'pas d\'entete'.print_r($retour['entete'], true));
$this->assertEquals(20, $retour['entete']['total'], "L'attribut 'total' devrait avoir la valeur '20'. Voir : $url");
$this->assertEquals(20, count($retour['resultat']), "L'attribut 'total' devrait avoir la valeur '20'. Voir : $url");
$this->assertNotEmpty($retour['resultat']['74929:34'], 'resultat 74929:34 absent'.print_r($retour['resultat']['74929:03'], true));
$this->assertArrayHasKey('type', $retour['resultat']['74929:03'], "Le json ne contient pas d'attribut : type. Voir : $url");
$this->assertEquals('chorologie', $retour['resultat']['74929:03']['type'], "L'attribut 'type' devrait avoir la valeur 'chorologie'. Voir : $url");
}
}
?>
/trunk/services/tests/0.1/chorodep/ChorodepOntologiesTest.php
New file
0,0 → 1,47
<?php
require_once dirname(__FILE__).'/../ServiceEflorePhpUnit.php';
 
class ChorodepOntologiesTest extends ServiceEflorePhpUnit {
 
public function __construct() {
$this->projet = 'chorodep';
$this->service = 'ontologies';
}
 
public function testRecherche() {
$ressources = array();
$parametres = array();
$url = $this->creerUrl($ressources, $parametres);
$retour = $this->consulterJson($ressources, $parametres);
$this->assertNotEmpty($retour, 'données absentes');
$this->assertArrayHasKey('total', $retour['entete'], "Le json ne contient pas d'attribut : total. Voir : $url");
$this->assertEquals('7', $retour['entete']['total'], "L'attribut 'total' devrait avoir la valeur '7'. Voir : $url");
$this->assertArrayHasKey('nom', $retour['resultat'][1], "Le json ne contient pas d'attribut : nom. Voir : $url");
$this->assertEquals('presenceChorologie', $retour['resultat'][1]['nom'], "L'attribut 'nom' devrait avoir la valeur 'presenceChorologie'. Voir : $url");
}
public function testMasqueCode() {
$ressources = array();
$parametres = array('masque.code' => '?');
$url = $this->creerUrl($ressources, $parametres);
$retour = $this->consulterJson($ressources, $parametres);
$this->assertNotEmpty($retour, 'données absentes');
$this->assertArrayHasKey('total', $retour['entete'], "Le json ne contient pas d'attribut : total. Voir : $url");
$this->assertEquals('1', $retour['entete']['total'], "L'attribut 'total' devrait avoir la valeur '1'. Voir : $url");
$this->assertArrayHasKey('nom', $retour['resultat'][4], "Le json ne contient pas d'attribut : nom. Voir : $url");
$this->assertEquals('douteux', $retour['resultat'][4]['nom'], "L'attribut 'nom' devrait avoir la valeur 'douteux'. Voir : $url");
}
public function testMasqueNom() {
$ressources = array();
$parametres = array('masque.nom' => 'disparu');
$url = $this->creerUrl($ressources, $parametres);
$retour = $this->consulterJson($ressources, $parametres);
$this->assertNotEmpty($retour, 'données absentes');
$this->assertArrayHasKey('total', $retour['entete'], "Le json ne contient pas d'attribut : total. Voir : $url");
$this->assertEquals('1', $retour['entete']['total'], "L'attribut 'total' devrait avoir la valeur '1'. Voir : $url");
$this->assertArrayHasKey('code', $retour['resultat'][6], "Le json ne contient pas d'attribut : code. Voir : $url");
$this->assertEquals('-|-', $retour['resultat'][6]['code'], "L'attribut 'code' devrait avoir la valeur '-|-'. Voir : $url");
}
}
?>
/trunk/services/modules/0.1/chorodep/Observations.php
62,6 → 62,7
 
// +-------------------------------------------------------------------------------------------------------------------+
public function consulter($ressources, $parametres) {
$this->parametres = $parametres;
$this->traiterVersionProjet($ressources);
$this->traiterRessources($ressources);
$resultat_formate = '';
110,7 → 111,7
public function assemblerLaRequete() {
$requete = "SELECT ".$this->formerRequeteChamp().
" FROM ".$this->table.$this->formerRequeteCondition().
' LIMIT '.$this->limite_requete['depart'].', '.$this->limite_requete['limite'];
' LIMIT '.$this->limite_requete['depart'].', '.$this->limite_requete['limite'];//echo $requete;
return $requete;
}
305,7 → 306,7
$this->limite_requete['depart'] = 0;
$this->limite_requete['dept'] = $d[1];
$requete_condition = (is_numeric($d[0])) ? '`num_nom` = '.$d[0] : '`nom_sci` like "'.urldecode($d[0]).'%"';
$requete = "SELECT id FROM $this->table WHERE ".$requete_condition; //echo $requete;
$requete = "SELECT id FROM $this->table WHERE ".$requete_condition;
$res = $this->getBdd()->recuperer($requete);
if ($res == '') { //cas ou la requete comporte des erreurs
$r = 'La requête SQL formée comporte une erreur !!';
337,6 → 338,7
$num = 0; // compte le nombre d'observations pour retourner le nombre d'obs indiqué
$depart = false; //le depart du resultat est noté ss forme #ligne:#departement $depart indique le departement est correct
//on remplit la table $table_retour_json['resultat']
//$this->table_retour = array();
foreach ($resultat as $tab) {
foreach ($tab as $key => $valeur) {
switch ($key) {
350,21 → 352,25
case 'num_nom' : ($valeur == 'nc')? $num_nom = urlencode($tab['nom_sci']) : $num_nom = $valeur ; break;
case 'nom_sci' : $this->table_retour['determination.nom_sci'] = $valeur; break;
default : // pour les depts
if ($depart == true && $valeur != '') {
if (($this->presenceChorologie != '' && $valeur == $this->presenceChorologie) || ($this->presenceChorologie == '' && $valeur != $this->presenceChorologie)) {
if (isset($this->parametres['masque.station'])) {
if ($key == $this->parametres['masque.station']) {
$id = $num_nom.":".$key;
if ($this->retour_format == 'max' ) {
$this->afficherDonneesMax($key, $valeur);
$this->table_retour['href'] = $this->ajouterHref('observations',$id);
} else {
$this->table_retour['station.departement.code'] = 'INSEE-D.'.$key;
$this->table_retour['valeur.code'] = $valeur;
}
$this->completerDonnees($key, $valeur, $id);
$resultat_json[$id] = $this->table_retour;
$num++;
}
} else {
if ($depart == true && $valeur != '') {
if (($this->presenceChorologie != '' && $valeur == $this->presenceChorologie) ||
($this->presenceChorologie == '' && $valeur != $this->presenceChorologie)) {
$id = $num_nom.":".$key;
$this->completerDonnees($key, $valeur, $id);
$resultat_json[$id] = $this->table_retour;
$num++;
}
}
if ($key == $this->limite_requete['dept']) $depart = true;
}
if ($key == $this->limite_requete['dept']) $depart = true;
break;
}
if ($num == $this->limite_requete['limite']) {
385,8 → 391,18
$table_retour_json['entete'] = $this->table_entete;
$table_retour_json['resultat'] = $resultat_json;
return $table_retour_json;
}
}
public function completerDonnees($key, $valeur, $id) {
if ($this->retour_format == 'max' ) {
$this->afficherDonneesMax($key, $valeur);
$this->table_retour['href'] = $this->ajouterHref('observations',$id);
} else {
$this->table_retour['station.departement.code'] = 'INSEE-D.'.$key;
$this->table_retour['valeur.code'] = $valeur;
}
}
public function formaterObservationsId($resultat) {
foreach ($resultat as $key => $valeur) {
switch ($key) {
414,9 → 430,13
if ($key != 20) { //à part la Corse
$url_dep = $this->ajouterHrefAutreProjet('zone-geo','',$key, 'insee-d');
$dep = $this->consulterHref($url_dep);
$this->table_retour['station.departement'] = $dep->nom;
$this->table_retour['station.departement.code'] = 'INSEE-D.'.$key;
$this->table_retour['station.departement.href'] = $url_dep;
if (isset($dep)) {
$this->table_retour['station.departement'] = $dep->nom;
$this->table_retour['station.departement.code'] = 'INSEE-D.'.$key;
$this->table_retour['station.departement.href'] = $url_dep;
} else {
$this->table_retour['station.departement.code'] = 'INSEE-D.'.$key;
}
} else {
$this->table_retour['station.departement.code'] = 'INSEE-D.'.$key;
}