240 |
delphine |
1 |
<?php
|
|
|
2 |
require_once dirname(__FILE__).'/../ServiceEflorePhpUnit.php';
|
|
|
3 |
|
|
|
4 |
class CommunOntologiesTest extends ServiceEflorePhpUnit {
|
|
|
5 |
|
|
|
6 |
public function __construct() {
|
783 |
raphael |
7 |
$this->projet = 'eflore';
|
240 |
delphine |
8 |
$this->service = 'ontologies';
|
|
|
9 |
}
|
|
|
10 |
|
|
|
11 |
public function testRecherche() {
|
|
|
12 |
$ressources = array();
|
|
|
13 |
$parametres = array();
|
790 |
raphael |
14 |
$url = ServiceEflorePhpUnit::creerUrl($this->service, $ressources, $parametres);
|
|
|
15 |
$retour = $this->consulterJson($this->service, $this->projet, $ressources, $parametres);
|
240 |
delphine |
16 |
$this->assertNotEmpty($retour, 'données absentes');
|
|
|
17 |
$this->assertArrayHasKey('total', $retour['entete'], "Le json ne contient pas d'attribut : total. Voir : $url");
|
783 |
raphael |
18 |
// au 20/08/2013, n°23 = Baznat
|
|
|
19 |
$this->assertEquals('23', $retour['entete']['total'], "L'attribut 'total' devrait avoir la valeur '23'. Voir : $url");
|
240 |
delphine |
20 |
$this->assertArrayHasKey('nom', $retour['resultat'][1], "Le json ne contient pas d'attribut : nom. Voir : $url");
|
|
|
21 |
$this->assertEquals('contactType', $retour['resultat'][1]['nom'], "L'attribut 'nom' devrait avoir la valeur 'contactType'. Voir : $url");
|
|
|
22 |
}
|
|
|
23 |
|
|
|
24 |
public function testMasqueCode() {
|
|
|
25 |
$ressources = array();
|
|
|
26 |
$parametres = array('masque.code' => 'o');
|
790 |
raphael |
27 |
$url = ServiceEflorePhpUnit::creerUrl($this->service, $ressources, $parametres);
|
|
|
28 |
$retour = $this->consulterJson($this->service, $this->projet, $ressources, $parametres);
|
240 |
delphine |
29 |
$this->assertNotEmpty($retour, 'données absentes');
|
|
|
30 |
$this->assertArrayHasKey('total', $retour['entete'], "Le json ne contient pas d'attribut : total. Voir : $url");
|
|
|
31 |
$this->assertEquals('1', $retour['entete']['total'], "L'attribut 'total' devrait avoir la valeur '1'. Voir : $url");
|
|
|
32 |
$this->assertArrayHasKey('nom', $retour['resultat'][4], "Le json ne contient pas d'attribut : nom. Voir : $url");
|
|
|
33 |
$this->assertEquals('organisations', $retour['resultat'][4]['nom'], "L'attribut 'nom' devrait avoir la valeur 'organisations'. Voir : $url");
|
|
|
34 |
}
|
|
|
35 |
|
|
|
36 |
public function testMasqueDescription() {
|
|
|
37 |
$ressources = array();
|
|
|
38 |
$parametres = array('masque.description' => '%contact');
|
790 |
raphael |
39 |
$url = ServiceEflorePhpUnit::creerUrl($this->service, $ressources, $parametres);
|
|
|
40 |
$retour = $this->consulterJson($this->service, $this->projet, $ressources, $parametres);
|
240 |
delphine |
41 |
$this->assertNotEmpty($retour, 'données absentes');
|
|
|
42 |
$this->assertArrayHasKey('total', $retour['entete'], "Le json ne contient pas d'attribut : total. Voir : $url");
|
|
|
43 |
$this->assertEquals('1', $retour['entete']['total'], "L'attribut 'total' devrait avoir la valeur '1'. Voir : $url");
|
|
|
44 |
$this->assertArrayHasKey('nom', $retour['resultat'][1], "Le json ne contient pas d'attribut : nom. Voir : $url");
|
|
|
45 |
$this->assertEquals('contactType', $retour['resultat'][1]['nom'], "L'attribut 'nom' devrait avoir la valeur 'contactType'. Voir : $url");
|
|
|
46 |
}
|
834 |
raphael |
47 |
|
|
|
48 |
// simple test ontologies bdnt
|
|
|
49 |
// ce qui signifie les ontologies communes aux référentiels (bdtfx, bdtxa, isfan)
|
|
|
50 |
public function testBdntSimpleNonExistante() {
|
|
|
51 |
$url = '/bdnt' . ServiceEflorePhpUnit::creerUrl('ontologies', [ 'rangTaxo:-1' ] );
|
|
|
52 |
$retour = $this->consulterBrut('ontologies', 'bdnt', [ 'rangTaxo:-1' ] );
|
|
|
53 |
$this->assertContains($retour, 'Les données recherchées sont introuvables.');
|
|
|
54 |
}
|
|
|
55 |
|
|
|
56 |
public function testBdntSimpleExistante() {
|
|
|
57 |
$url = '/bdnt' . ServiceEflorePhpUnit::creerUrl('ontologies', [ 'rangTaxo:70' ] );
|
|
|
58 |
$retour = $this->consulterJson('ontologies', 'bdnt', [ 'rangTaxo:70' ] );
|
|
|
59 |
$this->assertNotEmpty($retour, 'données absentes');
|
|
|
60 |
foreach(['id', 'nom', 'code', 'complements', 'classe.id', 'classe', 'classe.href'] as $v) {
|
|
|
61 |
$this->assertArrayHasKey($v, $retour, "Le json ne contient pas l'attribut \"$v\". Voir : $url");
|
|
|
62 |
}
|
|
|
63 |
$this->assertEquals('15', $retour['id'], "L'attribut 'id' devrait avoir la valeur '15'. Voir : $url");
|
|
|
64 |
$this->assertEquals('Cladus', $retour['nom'], "L'attribut 'nom' devrait avoir la valeur 'Cladus'. Voir : $url");
|
|
|
65 |
}
|
|
|
66 |
|
|
|
67 |
// Les ontologies supportent les requêtes multiples, eg: /bdnt/ontologies/rangTaxo:70,rangTaxo:-1
|
|
|
68 |
// Les ontologies sont alors indexées par élément de requête (pour faciliter le travail du client)
|
|
|
69 |
// Les résultats inexistants ne sont pas retournés
|
|
|
70 |
public function testBdntMultiplesNonExistante() {
|
|
|
71 |
$ressource = [ implode(',', [ 'rangTaxo:70', 'rangTaxo:-1' ]) ];
|
|
|
72 |
$url = '/bdnt' . ServiceEflorePhpUnit::creerUrl('ontologies', $ressource );
|
|
|
73 |
$retour = $this->consulterJson('ontologies', 'bdnt', $ressource );
|
|
|
74 |
$this->assertNotEmpty($retour, 'données absentes');
|
897 |
raphael |
75 |
$this->assertCount(1, $retour, "Le retour ne devrait contenir que le seul élément valide. Voir : $url");
|
834 |
raphael |
76 |
$this->assertArrayHasKey('rangTaxo:70', $retour, "Le json ne contient pas d'élément rangTaxo:70. Voir : $url");
|
|
|
77 |
foreach(['id', 'nom', 'code', 'complements', 'classe.id', 'classe', 'classe.href'] as $v) {
|
|
|
78 |
$this->assertArrayHasKey($v, $retour['rangTaxo:70'], "Le json ne contient pas l'attribut \"$v\". Voir : $url");
|
|
|
79 |
}
|
|
|
80 |
$this->assertEquals('15', $retour['rangTaxo:70']['id'], "L'attribut 'id' devrait avoir la valeur '15'. Voir : $url");
|
|
|
81 |
$this->assertEquals('Cladus', $retour['rangTaxo:70']['nom'], "L'attribut 'nom' devrait avoir la valeur 'Cladus'. Voir : $url");
|
|
|
82 |
}
|
|
|
83 |
|
|
|
84 |
// Les ontologies supportent les requêtes multiples sur des code différents
|
|
|
85 |
// eg: /bdnt/ontologies/rangTaxo:70,zoneGeo:YT
|
|
|
86 |
public function testBdntMultiplesExistantes() {
|
|
|
87 |
$ressource = [ implode(',', [ 'rangTaxo:70', 'zoneGeo:YT' ]) ];
|
|
|
88 |
$url = '/bdnt' . ServiceEflorePhpUnit::creerUrl('ontologies', $ressource );
|
|
|
89 |
$retour = $this->consulterJson('ontologies', 'bdnt', $ressource );
|
|
|
90 |
$this->assertNotEmpty($retour, 'données absentes');
|
897 |
raphael |
91 |
$this->assertCount(2, $retour, "Le retour devrait contenir 2 éléments valides. Voir : $url");
|
834 |
raphael |
92 |
$this->assertArrayHasKey('rangTaxo:70', $retour, "Le json ne contient pas d'élément 'rangTaxo:70'. Voir : $url");
|
|
|
93 |
$this->assertArrayHasKey('zoneGeo:YT', $retour, "Le json ne contient pas d'élément 'zoneGeo:YT'. Voir : $url");
|
|
|
94 |
|
|
|
95 |
foreach($retour as $k => $e) {
|
|
|
96 |
foreach(['id', 'nom', 'code', 'classe.id', 'classe', 'classe.href'] as $v) {
|
|
|
97 |
$this->assertArrayHasKey($v, $e, "Le json ne contient pas l'attribut \"$v\" pour l'élément \"$k\". Voir : $url");
|
|
|
98 |
}
|
|
|
99 |
}
|
|
|
100 |
// n'existe pas pour "zoneGeo", pourquoi ?
|
|
|
101 |
$this->assertArrayHasKey('complements', $retour['rangTaxo:70'], "Le json ne contient pas l'attribut \"$v\". Voir : $url");
|
|
|
102 |
|
|
|
103 |
|
|
|
104 |
$this->assertEquals('15', $retour['rangTaxo:70']['id'], "L'attribut 'id' devrait avoir la valeur '15'. Voir : $url");
|
|
|
105 |
$this->assertEquals('Cladus', $retour['rangTaxo:70']['nom'], "L'attribut 'nom' devrait avoir la valeur 'Cladus'. Voir : $url");
|
|
|
106 |
$this->assertEquals('180', $retour['zoneGeo:YT']['id'], "L'attribut 'id' devrait avoir la valeur '180'. Voir : $url");
|
|
|
107 |
$this->assertEquals('Mayotte', $retour['zoneGeo:YT']['nom'], "L'attribut 'nom' devrait avoir la valeur 'Mayotte'. Voir : $url");
|
|
|
108 |
}
|
240 |
delphine |
109 |
}
|