qadan
11 years ago
7 changed files with 163 additions and 150 deletions
@ -0,0 +1,153 @@
|
||||
<?php |
||||
/** |
||||
* @file |
||||
* Abstraction n' stuff for the test utilities and results. |
||||
*/ |
||||
|
||||
/** |
||||
* A result from a utility method; $type defines TRUE/FALSE as pass/fail. |
||||
*/ |
||||
class IslandoraTestUtilityResult { |
||||
|
||||
/** |
||||
* The message for this result. |
||||
* |
||||
* @var string |
||||
*/ |
||||
protected $message; |
||||
|
||||
/** |
||||
* The caller for this result. |
||||
* |
||||
* @var array |
||||
*/ |
||||
protected $caller; |
||||
|
||||
/** |
||||
* The type of result this is - TRUE for pass, FALSE for fail. |
||||
* |
||||
* @var bool |
||||
*/ |
||||
protected $type; |
||||
|
||||
/** |
||||
* Constructs an IslandoraTestUtilityResult. |
||||
* |
||||
* @param bool $type |
||||
* Whether this result should indicate a pass (TRUE) or fail (FALSE). |
||||
* @param string $message |
||||
* The message that will be used by this result. |
||||
* @param array $caller |
||||
* The caller for this result. |
||||
*/ |
||||
public function __construct($type, $message, array $caller) { |
||||
$this->message = $message; |
||||
$this->caller = $caller; |
||||
$this->type = $type; |
||||
} |
||||
|
||||
/** |
||||
* Get the message for this result. |
||||
* |
||||
* @return string |
||||
* The message for this result. |
||||
*/ |
||||
public function getMessage() { |
||||
return $this->message; |
||||
} |
||||
|
||||
/** |
||||
* Get the caller for this result. |
||||
* |
||||
* @return string |
||||
* The caller for this result. |
||||
*/ |
||||
public function getCaller() { |
||||
return $this->caller; |
||||
} |
||||
|
||||
/** |
||||
* Get the type of result. |
||||
* |
||||
* @return bool |
||||
* The type of pass (TRUE for pass, FALSE for fail). |
||||
*/ |
||||
public function getType() { |
||||
return $this->type; |
||||
} |
||||
} |
||||
|
||||
/** |
||||
* Abstraction for test utility classes. |
||||
* |
||||
* This is to be implemented in any class that wants to have test utility |
||||
* functionality (i.e. that wants to pass back results to tests). Check out the |
||||
* datastream validator class for a good example of how this is implemented. |
||||
* |
||||
* Test utility classes should store per-installation configuration options in |
||||
* a test_config.ini file, contained in the islandora/tests folder. A function |
||||
* is included with the abstraction to parse the configuration file. |
||||
*/ |
||||
abstract class IslandoraTestUtilityClass { |
||||
|
||||
/** |
||||
* An array of IslandoraTestUtilityResults. |
||||
* |
||||
* These should be generated using $this->addResult. |
||||
* |
||||
* @var IslandoraTestUtilityResult[] |
||||
*/ |
||||
public $results = array(); |
||||
|
||||
/** |
||||
* Parses and returns the settings from the test configuration file. |
||||
* |
||||
* If no install specific test_config.ini file is found, it will use the |
||||
* assumed default configs found in default.test_config.ini. |
||||
* |
||||
* @return array |
||||
* The test configuration. |
||||
* |
||||
* @see parse_ini_file() |
||||
*/ |
||||
public static function getTestConfiguration() { |
||||
$path = drupal_get_path('module', 'islandora'); |
||||
if (file_exists("$path/tests/test_config.ini")) { |
||||
return parse_ini_file("$path/tests/test_config.ini"); |
||||
} |
||||
elseif (file_exists("$path/tests/default.test_config.ini")) { |
||||
return parse_ini_file("$path/tests/default.test_config.ini"); |
||||
} |
||||
throw new Exception('Required default.test_config.ini/test_config.ini file not found'); |
||||
} |
||||
|
||||
/** |
||||
* Returns an array of IslandoraTestUtilityResults. |
||||
* |
||||
* The particular testing implementation you are using should use this to |
||||
* parse results from utilities and pass them through. |
||||
* |
||||
* @return IslandoraTestUtilityResult[] |
||||
* The results. |
||||
*/ |
||||
abstract public function getResults(); |
||||
|
||||
/** |
||||
* Adds a result to $this->results. |
||||
* |
||||
* @param bool $type |
||||
* The type of result (TRUE for pass, FALSE for fail). |
||||
* @param string $message |
||||
* The message to put in the result. |
||||
*/ |
||||
abstract public function addResult($type, $message); |
||||
|
||||
/** |
||||
* Gets the caller of the method that passed a result. |
||||
* |
||||
* @return array |
||||
* Array representing the true caller. |
||||
*/ |
||||
abstract public function getAssertionCall(); |
||||
|
||||
} |
Loading…
Reference in new issue