/branches/v5.8-aspergeraie/scripts/tests/bibliotheque/GenerateurNomSciHtmlTest.php |
---|
New file |
0,0 → 1,82 |
<?php |
class GenerateurNomSciHtmlTest extends PHPUnit_Framework_TestCase { |
public static function setUpBeforeClass() { |
error_reporting(E_ALL); |
define('DS', DIRECTORY_SEPARATOR); |
require_once dirname(__FILE__).DS.'..'.DS.'..'.DS.'bibliotheque'.DS.'GenerateurNomSciHtml.php'; |
} |
public function testGenerer() { |
$nomsDecomposes[] = array( |
'num_nom' => 1009, |
'rang' => 340, |
'nom_supra_generique' => '', |
'genre' => 'Aegilops', |
'epithete_infra_generique' => '', |
'epithete_sp' => 'triuncialis', |
'type_epithete' => 'var.', |
'epithete_infra_sp' => 'nigroferruginea', |
'cultivar_groupe' => '', |
'nom_commercial' => '', |
'cultivar' => '', |
'annee' => '1923', |
'auteur' => 'Popova', |
'biblio_origine' => 'Trudy Prikl. Bot. Selekc., 13 : 476'); |
$generateur = new GenerateurNomSciHtml(); |
$nomsSciHtml = $generateur->generer($nomsDecomposes); |
$nomSciHtmlGenere = $nomsSciHtml[1009]; |
$nomSciHtmlAttendu = '<span class="sci"><span class="gen">Aegilops</span> <span class="sp">triuncialis</span> <abbr class="type_epithete" title="Variété">var.</abbr> <span class="infra-sp">nigroferruginea</span></span>'; |
$this->assertEquals($nomSciHtmlAttendu, $nomSciHtmlGenere); |
} |
public function testGenererHybride() { |
$nomsDecomposes[] = array( |
'num_nom' => 179, |
'rang' => 290, |
'nom_supra_generique' => '', |
'genre' => 'Acer', |
'epithete_infra_generique' => '', |
'epithete_sp' => 'x martinii', |
'type_epithete' => '', |
'epithete_infra_sp' => '', |
'cultivar_groupe' => '', |
'nom_commercial' => '', |
'cultivar' => '', |
'annee' => '1852', |
'auteur' => 'Jord.', |
'biblio_origine' => 'Pugill. Pl. Nov., 52' |
); |
$generateur = new GenerateurNomSciHtml(); |
$nomsSciHtml = $generateur->generer($nomsDecomposes); |
$nomSciHtmlGenere = $nomsSciHtml[179]; |
$nomSciHtmlAttendu = '<span class="sci"><span class="gen">Acer</span> <span class="hyb">x <span class="sp">martinii</span></span></span>'; |
$this->assertEquals($nomSciHtmlAttendu, $nomSciHtmlGenere); |
} |
public function testGenererChimere() { |
$nomsDecomposes[] = array( |
'num_nom' => 80380, |
'rang' => 290, |
'nom_supra_generique' => '', |
'genre' => '+ Cytisus', |
'epithete_infra_generique' => '', |
'epithete_sp' => 'adami', |
'type_epithete' => '', |
'epithete_infra_sp' => '', |
'cultivar_groupe' => '', |
'nom_commercial' => '', |
'cultivar' => '', |
'annee' => '1830', |
'auteur' => 'Poit.', |
'biblio_origine' => 'Ann. Soc. Hort. Paris, 7 : 96' |
); |
$generateur = new GenerateurNomSciHtml(); |
$nomsSciHtml = $generateur->generer($nomsDecomposes); |
$nomSciHtmlGenere = $nomsSciHtml[80380]; |
$nomSciHtmlAttendu = '<span class="sci"><span class="chimere">+ <span class="gen">Cytisus</span></span> <span class="sp">adami</span></span>'; |
$this->assertEquals($nomSciHtmlAttendu, $nomSciHtmlGenere); |
} |
} |
?> |
/branches/v5.8-aspergeraie/scripts/tests/bibliotheque/OutilsTest.php |
---|
New file |
0,0 → 1,63 |
<?php |
require_once dirname(__FILE__).'/../ScriptEflorePhpUnit.php'; |
class OutilsTest extends ScriptEflorePhpUnit { |
public function testRecupererTableauConfigAssociatif() { |
$chaineDeParametres = "param1=valeur1,\nparam2=valeur2"; |
$tableauDeParametres = Outils::recupererTableauConfig($chaineDeParametres); |
$tableauDeParametresAttendus = array('param1' => 'valeur1','param2' => 'valeur2'); |
$this->assertEquals($tableauDeParametresAttendus, $tableauDeParametres); |
} |
public function testRecupererTableauConfigAssociatifAvecEspace() { |
$chaineDeParametres = "param1 =valeur1 , \nparam2 = valeur2"; |
$tableauDeParametres = Outils::recupererTableauConfig($chaineDeParametres); |
$tableauDeParametresAttendus = array('param1' => 'valeur1','param2' => 'valeur2'); |
$this->assertEquals($tableauDeParametresAttendus, $tableauDeParametres); |
} |
public function testRecupererTableauConfigSimple() { |
$chaineDeParametres = "param1,\nparam2"; |
$tableauDeParametres = Outils::recupererTableauConfig($chaineDeParametres); |
$tableauDeParametresAttendus = array('param1', 'param2'); |
$this->assertEquals($tableauDeParametresAttendus, $tableauDeParametres); |
} |
public function testRecupererTableauConfigSimpleAvecEspace() { |
$chaineDeParametres = " param1 ,\n param2 "; |
$tableauDeParametres = Outils::recupererTableauConfig($chaineDeParametres); |
$tableauDeParametresAttendus = array('param1', 'param2'); |
$this->assertEquals($tableauDeParametresAttendus, $tableauDeParametres); |
} |
public function testExtraireRequetes() { |
$contenuSql = "CREATE TABLE IF NOT EXISTS bdtfx_v1_01 (". |
"num_nom int(9) NOT NULL DEFAULT '0',". |
"num_nom_retenu varchar(9) CHARACTER SET utf8 DEFAULT NULL,". |
") ENGINE=MyISAM DEFAULT CHARSET=utf8;\n\n". |
"INSERT INTO bdtfx_meta (guid) VALUES". |
"('urn:lsid:tela-botanica.org:bdtfx:1.01');\n". |
"SELECT * FROM ma_table;"; |
$tableauDeRequetes = Outils::extraireRequetes($contenuSql); |
$tableauDeRequetesAttendus = array("CREATE TABLE IF NOT EXISTS bdtfx_v1_01 (". |
"num_nom int(9) NOT NULL DEFAULT '0',". |
"num_nom_retenu varchar(9) CHARACTER SET utf8 DEFAULT NULL,". |
") ENGINE=MyISAM DEFAULT CHARSET=utf8", |
"INSERT INTO bdtfx_meta (guid) VALUES". |
"('urn:lsid:tela-botanica.org:bdtfx:1.01')", |
"SELECT * FROM ma_table"); |
$this->assertEquals($tableauDeRequetesAttendus, $tableauDeRequetes); |
} |
public function testAfficherAvancement() { |
ob_start(); |
for ($i = 0; $i < 10; $i++) { |
$tableauDeRequetes = Outils::afficherAvancement("Test"); |
} |
$messageFinal = ob_get_clean(); |
$messageFinalAttendu = 'Test : 0'.chr(8).'1'.chr(8).'2'.chr(8).'3'.chr(8).'4'.chr(8).'5'.chr(8).'6'.chr(8).'7'.chr(8).'8'.chr(8).'9'; |
$this->assertEquals($messageFinalAttendu, $messageFinal); |
} |
} |
?> |
/branches/v5.8-aspergeraie/scripts/tests/bibliotheque/EfloreScriptTest.php |
---|
New file |
0,0 → 1,48 |
<?php |
require_once dirname(__FILE__).'/../ScriptEflorePhpUnit.php'; |
class EfloreScriptTest extends ScriptEflorePhpUnit { |
public function testChargerConfigDuProjetAvecFichiersIni() { |
$cheminRacine = realpath(dirname(__FILE__).'/../tmp/').'/'; |
if (!file_exists($cheminRacine.'test.ini')) { |
file_put_contents($cheminRacine.'test.ini', "[tables]\ntest=OK"); |
} |
$script = $this->getMock('EfloreScript', array('getScriptChemin', 'getProjetNom', 'executer')); |
$script->expects($this->any())->method('getScriptChemin')->will($this->returnValue($cheminRacine)); |
$script->expects($this->any())->method('getProjetNom')->will($this->returnValue('test')); |
$chargerConfigDuProjet = self::getProtectedMethode($script, 'chargerConfigDuProjet'); |
$chargerConfigDuProjet->invoke($script); |
$parametreConfig = Config::get('tables.test'); |
$this->assertEquals('OK', $parametreConfig); |
} |
public function testGetBdd() { |
$nomDuScript = 'Test'; |
$parametresCli = array('-a' => 'tester', '-v' => '3'); |
$script = $this->getClasseAbstraite('EfloreScript', array($nomDuScript, $parametresCli)); |
$getBdd = self::getProtectedMethode($script, 'getBdd'); |
$bdd = $getBdd->invoke($script); |
$this->assertTrue(is_object($bdd)); |
$this->assertEquals('Bdd', get_class($bdd)); |
} |
public function testStopperLaBoucle() { |
$nomDuScript = 'Test'; |
$parametresCli = array('-a' => 'tester', '-v' => '3'); |
$script = $this->getClasseAbstraite('EfloreScript', array($nomDuScript, $parametresCli)); |
$stopperLaBoucle = self::getProtectedMethode($script, 'stopperLaBoucle'); |
for ($i = 0; $i < 100; $i++) { |
if ($stopperLaBoucle->invoke($script, '10')) { |
break; |
} |
} |
$this->assertEquals('9', $i); |
} |
} |
?> |
/branches/v5.8-aspergeraie/scripts/tests/ScriptEflorePhpUnit.php |
---|
New file |
0,0 → 1,92 |
<?php |
// declare(encoding='UTF-8'); |
/** |
* Classe contenant des méthodes : |
* - d'intialisation des tests, |
* - refactorisant le code des tests, |
* - facilitant les tests. |
* |
* @category php 5.3 |
* @package Tests/Scripts |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
* @copyright Copyright (c) 2011, Tela Botanica (accueil@tela-botanica.org) |
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL |
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL |
* @version $Id$ |
*/ |
abstract class ScriptEflorePhpUnit extends PHPUnit_Framework_TestCase { |
public static function setUpBeforeClass() { |
error_reporting(E_ALL); |
self::chargerFramework(); |
} |
private static function chargerFramework() { |
$cheminRacine = realpath(dirname(__FILE__).'/../').'/'; |
$framework = $cheminRacine.'framework.php'; |
if (!file_exists($framework)) { |
$e = "Veuillez paramétrer l'emplacement et la version du Framework dans le fichier $framework"; |
trigger_error($e, E_USER_ERROR); |
} else { |
// Inclusion du Framework |
require_once $framework; |
// Ajout d'information concernant cette application |
Framework::setCheminAppli($cheminRacine);// Obligatoire |
} |
} |
//+------------------------------------------------------------------------------------------------------+ |
// Méthodes facilitant les tests |
/** |
* Récupère un bouchon de classe abstraite. |
* Comment l'utiliser : |
* $classeAstraite = $this->getClasseAbstraite('MaClasse', array('param1', 'param2')); |
* $foo = $classeAstraite->methodeConcretePublique(); |
* |
* @param String $classeNom Le nom de la classe |
* @param Array $parametres Les paramètres à passer au constructeur. |
* @return Object Le bouchon de la classe abstraite |
*/ |
public function getClasseAbstraite($classeNom, Array $parametres) { |
$efloreScript = $this->getMockForAbstractClass($classeNom, $parametres); |
return $efloreScript; |
} |
/** |
* Récupère une méthode privée d'une classe pour tester/documenter. |
* Comment l'utiliser : |
* MyClass->foo(): |
* $cls = new MyClass(); |
* $foo = self::getPrivateMethode($cls, 'foo'); |
* $foo->invoke($cls, $...); |
* |
* @param object $objet Une instance de votre classe |
* @param string $methode Le nom de la méthode private |
* @return ReflectionMethod La méthode demandée |
*/ |
public static function getPrivateMethode($objet, $nomMethode) { |
$classe = new ReflectionClass($objet); |
$methode = $classe->getMethod($nomMethode); |
$methode->setAccessible(true); |
return $methode; |
} |
/** |
* Récupère une méthode protégée d'une classe pour tester/documenter. |
* Comment l'utiliser : |
* MyClass->foo(): |
* $cls = new MyClass(); |
* $foo = self::getProtectedMethode($cls, 'foo'); |
* $foo->invoke($cls, $...); |
* @param object $objet Une instance de votre classe |
* @param string $methode Le nom de la méthode protected |
* @return ReflectionMethod La méthode demandée |
*/ |
public static function getProtectedMethode($objet, $nomMethode) { |
return self::getPrivateMethode($objet, $nomMethode); |
} |
} |
?> |
/branches/v5.8-aspergeraie/scripts/tests/tmp |
---|
New file |
Property changes: |
Added: svn:ignore |
+test.defaut.ini |
+test.ini |