From 588ef93bb313d2b2ccc6c84af8486441fe129e0d Mon Sep 17 00:00:00 2001 From: Anton Grebnev Date: Thu, 6 Oct 2011 18:04:34 +0400 Subject: [PATCH] AutoloadBuilder tested --- tests/util/AutoloadBuilderTest.php | 87 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 tests/util/AutoloadBuilderTest.php diff --git a/tests/util/AutoloadBuilderTest.php b/tests/util/AutoloadBuilderTest.php new file mode 100644 index 0000000..fb7493a --- /dev/null +++ b/tests/util/AutoloadBuilderTest.php @@ -0,0 +1,87 @@ + + * @link http://netmonsters.ru + * @package Majestic + * @subpackage UnitTests + * @since 2011-10-.. + * + * Unit tests for AutoloadBuilder class + */ + +require_once dirname(__FILE__) . '/../../util/AutoloadBuilder.php'; + +/** + * @TODO: AutoloadBuilder - fix writing to file: construct array first, write to file next - atomic operation + */ +class AutoloadBuilderTest extends PHPUnit_Framework_TestCase +{ + + private static $inc_dirs = array(); + private static $file; + + /** + * @TODO: Load->buildAutoload() - uses two paths - PATH . '/' . APP . '/src' and PATH . '/lib' those are not checked. Can couse error. + * @expectedException UnexpectedValueException + * @expectedException PHPUnit_Framework_Error + */ + public static function setUpBeforeClass() + { + if (!defined('PATH')) { + define('PATH', realpath(dirname(__FILE__) . '/../../../..')); + } + +// default application name + if (!defined('APP')) { + define('APP', 'lib/core/tests/face'); + } + + self::$file = PATH . '/' . APP . '/cache/autoload.php'; + + // value - if dir exists (to delete it if it was created), default true + self::$inc_dirs[PATH . '/' . APP . '/src'] = true; + self::$inc_dirs[PATH . '/' . APP . '/cache'] = true; + self::$inc_dirs[PATH . '/lib'] = true; + + foreach (self::$inc_dirs as $dir => &$is_exist) { + if (!file_exists($dir)) { + $is_exist = false; + mkdir($dir, 0777, true); + } + } + } + + /** + * @TODO: AutoloadBuilder - check input params: string for filename, array for dirs + * @expectedException PHPUnit_Framework_Error + */ + public function testBuildParams() + { + $autoload = self::$file; + $dirs = 'string'; + $builder = new AutoloadBuilder($autoload, $dirs); + + $builder->build(); + } + + public function testAutoloadFileExists() + { + $this->assertFileExists(self::$file); + } + + public static function tearDownAfterClass() + { + if (file_exists(self::$file)) { + unlink(self::$file); + } + + foreach (self::$inc_dirs as $dir => $is_exist) { + if (!$is_exist) { + rmdir($dir); + } + } + rmdir(PATH . '/' . APP); + } + +} \ No newline at end of file