[Felamimail] make testSaveMessageInFolder test more robust
[tine20] / tests / setup / BaseTest.php
1 <?php
2 /**
3  * Tine 2.0 - http://www.tine20.org
4  * 
5  * @package     Tests
6  * @license     http://www.gnu.org/licenses/agpl.html
7  * @copyright   Copyright (c) 2008 Metaways Infosystems GmbH (http://www.metaways.de)
8  * @author      Jonas Fischer <j.fischer@metaways.de>
9  */
10
11
12 class BaseTest extends PHPUnit_Framework_TestCase
13 {
14
15     public static function main()
16     {
17         require_once 'PHPUnit/TextUI/TestRunner.php';
18
19         $suite  = new PHPUnit_Framework_TestSuite(get_class(self));
20         $result = PHPUnit_TextUI_TestRunner::run($suite);
21     }
22
23     /**
24      * Create proxy to the given {@param $className} that allows to test protected class methods
25      * 
26      * @param String $_className
27      * @param Array | optional $_params
28      * 
29      * @return object [instance of the proxy class] 
30      */
31     public function getProxy($_className, array $_params = null)
32     {
33         $proxyClassName = "{$_className}Proxy";
34      
35         if (!class_exists($proxyClassName, false)) {
36      
37             $proxyClass = "
38                 class $proxyClassName extends $_className
39                 {
40                     public function __call(\$function, \$args)
41                     {
42                         \$function = str_replace('proxy_', '_', \$function);
43                         return call_user_func_array(array(\$this, \$function), \$args);
44                     }
45                 }
46             ";
47             eval($proxyClass);
48         }
49      
50         return new $proxyClassName($_params);
51     }
52 }