Subversion Repositories eFlore/Projets.eflore-projets

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
60 jpm 1
<?php
2
class EfloreScriptPhpUnitTestCase extends PHPUnit_Framework_TestCase {
3
 
4
	public static function setUpBeforeClass() {
5
		error_reporting(E_ALL);
6
		$cheminRacine = realpath(dirname(__FILE__).'/../../').'/';
7
		$framework =  $cheminRacine.'framework.php';
8
		if (!file_exists($framework)) {
9
			$e = "Veuillez paramétrer l'emplacement et la version du Framework dans le fichier $framework";
10
			trigger_error($e, E_USER_ERROR);
11
		} else {
12
			// Inclusion du Framework
13
			require_once $framework;
14
 
15
			// Ajout d'information concernant cette application
16
			Framework::setCheminAppli($cheminRacine);// Obligatoire
17
		}
18
	}
19
 
20
	//+------------------------------------------------------------------------------------------------------+
21
	// Méthodes facilitant les tests
22
 
23
	/**
24
	* Récupère un bouchon de classe abstraite.
25
	* Comment l'utiliser :
26
	* 	$classeAstraite = $this->getClasseAbstraite('MaClasse', array('param1', 'param2'));
27
	*   $foo = $classeAstraite->methodeConcretePublique();
28
	*
29
	* @param String $classeNom Le nom de la classe
30
	* @param Array $parametres Les paramètres à passer au constructeur.
31
	* @return Object Le bouchon de la classe abstraite
32
	*/
33
	public function getClasseAbstraite($classeNom, Array $parametres) {
34
		$efloreScript = $this->getMockForAbstractClass($classeNom, $parametres);
35
		return $efloreScript;
36
	}
37
 
38
	/**
39
	 * Récupère une méthode privée d'une classe pour tester/documenter.
40
	 * Comment l'utiliser :
41
	 * 	MyClass->foo():
42
	 *   $cls = new MyClass();
43
	 *   $foo = self::getPrivateMethode($cls, 'foo');
44
	 *   $foo->invoke($cls, $...);
45
	 *
46
	 * @param object $objet Une instance de votre classe
47
	 * @param string $methode Le nom de la méthode private
48
	 * @return ReflectionMethod La méthode demandée
49
	 */
50
	public static function getPrivateMethode($objet, $nomMethode) {
51
		$classe = new ReflectionClass($objet);
52
		$methode = $classe->getMethod($nomMethode);
53
		$methode->setAccessible(true);
54
		return $methode;
55
	}
56
 
57
	/**
58
	* Récupère une méthode protégée d'une classe pour tester/documenter.
59
	* Comment l'utiliser :
60
	* 	MyClass->foo():
61
	*   $cls = new MyClass();
62
	*   $foo = self::getProtectedMethode($cls, 'foo');
63
	*   $foo->invoke($cls, $...);
64
	* @param object $objet Une instance de votre classe
65
	* @param string $methode Le nom de la méthode protected
66
	* @return ReflectionMethod La méthode demandée
67
	*/
68
	public static function getProtectedMethode($objet, $nomMethode) {
69
		return self::getPrivateMethode($objet, $nomMethode);
70
	}
71
}
72
?>