Subversion Repositories eFlore/Projets.eflore-projets

Compare Revisions

Ignore whitespace Rev 897 → Rev 1010

/tags/v5.4-arboretum/services/tests/0.1/commun/CommunAideTest.php
New file
0,0 → 1,34
<?php
require_once dirname(__FILE__).'/../ServiceEflorePhpUnit.php';
 
class CommunAideTest extends ServiceEflorePhpUnit {
 
public function __construct() {
$this->projet = 'eflore';
$this->service = 'aide';
}
 
public function testAideSurCommun() {
$ressources = array();
$parametres = array();
$url = ServiceEflorePhpUnit::creerUrl($this->service, $ressources, $parametres);
$retour = $this->consulterJson($this->service, $this->projet, $ressources, $parametres);
$this->assertNotEmpty($retour['PROJET EFLORE'], 'données absentes');
$this->assertArrayHasKey('service.nom', $retour['PROJET EFLORE']['projet.services'][0], "Le json ne contient pas d'attribut : editeur. Voir : $url");
$this->assertEquals('ontologies', $retour['PROJET EFLORE']['projet.services'][0]['service.nom'], "L'attribut 'editeur' devrait avoir la valeur 'Tela Botanica'. Voir : $url");
}
public function testAideProjets() {
$ressources = array('projets');
$parametres = array();
$url = ServiceEflorePhpUnit::creerUrl($this->service, $ressources, $parametres);
$retour = $this->consulterJson($this->service, $this->projet, $ressources, $parametres);
$this->assertNotEmpty($retour, 'données absentes');
$this->assertGreaterThanOrEqual(8, count($retour), $retour);
$this->assertNotEmpty($retour['eflore'], 'données absentes');
$this->assertArrayHasKey('service.nom', $retour['eflore']['projet.services'][0], "Le json ne contient pas d'attribut : editeur. Voir : $url");
$this->assertEquals('ontologies', $retour['eflore']['projet.services'][0]['service.nom'], "L'attribut 'editeur' devrait avoir la valeur 'Tela Botanica'. Voir : $url");
}
}
?>
/tags/v5.4-arboretum/services/tests/0.1/commun/CommunMetaDonneesTest.php
New file
0,0 → 1,22
<?php
require_once dirname(__FILE__).'/../ServiceEflorePhpUnit.php';
 
class CommunMetaDonneesTest extends ServiceEflorePhpUnit {
 
public function __construct() {
$this->projet = 'eflore';
$this->service = 'meta-donnees';
}
 
public function testValeurChampPrecis() {
$ressources = array('editeur');
$parametres = array();
$url = ServiceEflorePhpUnit::creerUrl($this->service, $ressources, $parametres);
$retour = $this->consulterJson($this->service, $this->projet, $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");
}
}
?>
/tags/v5.4-arboretum/services/tests/0.1/commun/CommunOntologiesTest.php
New file
0,0 → 1,109
<?php
require_once dirname(__FILE__).'/../ServiceEflorePhpUnit.php';
 
class CommunOntologiesTest extends ServiceEflorePhpUnit {
 
public function __construct() {
$this->projet = 'eflore';
$this->service = 'ontologies';
}
 
public function testRecherche() {
$ressources = array();
$parametres = array();
$url = ServiceEflorePhpUnit::creerUrl($this->service, $ressources, $parametres);
$retour = $this->consulterJson($this->service, $this->projet, $ressources, $parametres);
$this->assertNotEmpty($retour, 'données absentes');
$this->assertArrayHasKey('total', $retour['entete'], "Le json ne contient pas d'attribut : total. Voir : $url");
// au 20/08/2013, n°23 = Baznat
$this->assertEquals('23', $retour['entete']['total'], "L'attribut 'total' devrait avoir la valeur '23'. Voir : $url");
$this->assertArrayHasKey('nom', $retour['resultat'][1], "Le json ne contient pas d'attribut : nom. Voir : $url");
$this->assertEquals('contactType', $retour['resultat'][1]['nom'], "L'attribut 'nom' devrait avoir la valeur 'contactType'. Voir : $url");
}
public function testMasqueCode() {
$ressources = array();
$parametres = array('masque.code' => 'o');
$url = ServiceEflorePhpUnit::creerUrl($this->service, $ressources, $parametres);
$retour = $this->consulterJson($this->service, $this->projet, $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('organisations', $retour['resultat'][4]['nom'], "L'attribut 'nom' devrait avoir la valeur 'organisations'. Voir : $url");
}
public function testMasqueDescription() {
$ressources = array();
$parametres = array('masque.description' => '%contact');
$url = ServiceEflorePhpUnit::creerUrl($this->service, $ressources, $parametres);
$retour = $this->consulterJson($this->service, $this->projet, $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'][1], "Le json ne contient pas d'attribut : nom. Voir : $url");
$this->assertEquals('contactType', $retour['resultat'][1]['nom'], "L'attribut 'nom' devrait avoir la valeur 'contactType'. Voir : $url");
}
 
// simple test ontologies bdnt
// ce qui signifie les ontologies communes aux référentiels (bdtfx, bdtxa, isfan)
public function testBdntSimpleNonExistante() {
$url = '/bdnt' . ServiceEflorePhpUnit::creerUrl('ontologies', [ 'rangTaxo:-1' ] );
$retour = $this->consulterBrut('ontologies', 'bdnt', [ 'rangTaxo:-1' ] );
$this->assertContains($retour, 'Les données recherchées sont introuvables.');
}
 
public function testBdntSimpleExistante() {
$url = '/bdnt' . ServiceEflorePhpUnit::creerUrl('ontologies', [ 'rangTaxo:70' ] );
$retour = $this->consulterJson('ontologies', 'bdnt', [ 'rangTaxo:70' ] );
$this->assertNotEmpty($retour, 'données absentes');
foreach(['id', 'nom', 'code', 'complements', 'classe.id', 'classe', 'classe.href'] as $v) {
$this->assertArrayHasKey($v, $retour, "Le json ne contient pas l'attribut \"$v\". Voir : $url");
}
$this->assertEquals('15', $retour['id'], "L'attribut 'id' devrait avoir la valeur '15'. Voir : $url");
$this->assertEquals('Cladus', $retour['nom'], "L'attribut 'nom' devrait avoir la valeur 'Cladus'. Voir : $url");
}
 
// Les ontologies supportent les requêtes multiples, eg: /bdnt/ontologies/rangTaxo:70,rangTaxo:-1
// Les ontologies sont alors indexées par élément de requête (pour faciliter le travail du client)
// Les résultats inexistants ne sont pas retournés
public function testBdntMultiplesNonExistante() {
$ressource = [ implode(',', [ 'rangTaxo:70', 'rangTaxo:-1' ]) ];
$url = '/bdnt' . ServiceEflorePhpUnit::creerUrl('ontologies', $ressource );
$retour = $this->consulterJson('ontologies', 'bdnt', $ressource );
$this->assertNotEmpty($retour, 'données absentes');
$this->assertCount(1, $retour, "Le retour ne devrait contenir que le seul élément valide. Voir : $url");
$this->assertArrayHasKey('rangTaxo:70', $retour, "Le json ne contient pas d'élément rangTaxo:70. Voir : $url");
foreach(['id', 'nom', 'code', 'complements', 'classe.id', 'classe', 'classe.href'] as $v) {
$this->assertArrayHasKey($v, $retour['rangTaxo:70'], "Le json ne contient pas l'attribut \"$v\". Voir : $url");
}
$this->assertEquals('15', $retour['rangTaxo:70']['id'], "L'attribut 'id' devrait avoir la valeur '15'. Voir : $url");
$this->assertEquals('Cladus', $retour['rangTaxo:70']['nom'], "L'attribut 'nom' devrait avoir la valeur 'Cladus'. Voir : $url");
}
 
// Les ontologies supportent les requêtes multiples sur des code différents
// eg: /bdnt/ontologies/rangTaxo:70,zoneGeo:YT
public function testBdntMultiplesExistantes() {
$ressource = [ implode(',', [ 'rangTaxo:70', 'zoneGeo:YT' ]) ];
$url = '/bdnt' . ServiceEflorePhpUnit::creerUrl('ontologies', $ressource );
$retour = $this->consulterJson('ontologies', 'bdnt', $ressource );
$this->assertNotEmpty($retour, 'données absentes');
$this->assertCount(2, $retour, "Le retour devrait contenir 2 éléments valides. Voir : $url");
$this->assertArrayHasKey('rangTaxo:70', $retour, "Le json ne contient pas d'élément 'rangTaxo:70'. Voir : $url");
$this->assertArrayHasKey('zoneGeo:YT', $retour, "Le json ne contient pas d'élément 'zoneGeo:YT'. Voir : $url");
 
foreach($retour as $k => $e) {
foreach(['id', 'nom', 'code', 'classe.id', 'classe', 'classe.href'] as $v) {
$this->assertArrayHasKey($v, $e, "Le json ne contient pas l'attribut \"$v\" pour l'élément \"$k\". Voir : $url");
}
}
// n'existe pas pour "zoneGeo", pourquoi ?
$this->assertArrayHasKey('complements', $retour['rangTaxo:70'], "Le json ne contient pas l'attribut \"$v\". Voir : $url");
 
 
$this->assertEquals('15', $retour['rangTaxo:70']['id'], "L'attribut 'id' devrait avoir la valeur '15'. Voir : $url");
$this->assertEquals('Cladus', $retour['rangTaxo:70']['nom'], "L'attribut 'nom' devrait avoir la valeur 'Cladus'. Voir : $url");
$this->assertEquals('180', $retour['zoneGeo:YT']['id'], "L'attribut 'id' devrait avoir la valeur '180'. Voir : $url");
$this->assertEquals('Mayotte', $retour['zoneGeo:YT']['nom'], "L'attribut 'nom' devrait avoir la valeur 'Mayotte'. Voir : $url");
}
}