<?php if(!defined('FRAMEWORK_DIR')) define('FRAMEWORK_DIR',realpath(dirname(__FILE__).'/../../../framework')); if(!defined('SIMPLETEST_DIR')) define('SIMPLETEST_DIR',realpath(dirname(__FILE__).'/../simpletest')); require_once(SIMPLETEST_DIR.'/unit_tester.php'); require_once(SIMPLETEST_DIR.'/mock_objects.php'); require_once(SIMPLETEST_DIR.'/reporter.php'); require_once(SIMPLETEST_DIR.'/HtmlReporterWithCoverage.php'); require_once(FRAMEWORK_DIR.'/core.php'); set_include_path(get_include_path().";".FRAMEWORK_DIR); class Prado extends PradoBase { } function __autoload($className) { require_once($className.Prado::CLASS_FILE_EXT); } error_reporting(E_ALL); restore_error_handler(); /** * PradoUnitTestCase class. * * Extends the simpletest UnitTestCase class to provide some fairly generic extra functionality. * * @author Alex Flint <alex@linium.net> */ class PradoUnitTestCase extends UnitTestCase { /** * Tests whether the given code results in an appropriate exception being raised. * @param string the PHP code to execute. must end with a semi-colon. * @param string the type of exception that should be raised. * @return boolean true */ public function assertException(string $code, string $exceptionType) { $ex = null; eval("try { $code } catch ($exceptionType \$e) { \$ex = \$e; }"); $this->assertIsA($ex, $exceptionType); } } /** * Generate a class called MockTApplication to mock the TApplication class * for the purpose of testing IModule objects. */ __autoload("TApplication"); Mock::generate("TApplication"); /** * ModuleTestCase class. * * Provides functionality designed to support testing of objects implementing the IModule * interface. * * Also provides some specific tests for IModule objects. * * @author Alex Flint <alex@linium.net> */ class ModuleTestCase extends PradoUnitTestCase { protected $module = null; protected $mockApplication = null; public function __construct() { $file = ""; $tihs->mockApplication = new MockTApplication($file); } public function testGetSetID() { if ($this->module instanceof IModule) { $this->module->setId(123); $this->assertEqual($this->module->getId(123)); } } /** * Initializes $this->module by calling the init() method with the provided configuration. * If no application object is provided then a mock application object $this->mockApplication. * @param array optional. The configuration array to provide to the module. If none provided then * an empty array will be used. * @param TApplication optional. The TApplication to pass to the init() function of the module. * If none provided then $this->mockApplication will be used. */ public function initModule($config=array(), $application=null) { if ($this->module instanceof IModule) { if (is_null($application)) { $application =& $this->mockApplication; } $this->module->init($config, $application); } } } ?>