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(); }