| <?php | 
| /** | 
|  * PhpUnderControl_PhalApiLoggerFile_Test | 
|  * | 
|  * 针对 ../../PhalApi/Logger/File.php PhalApi_Logger_File 类的PHPUnit单元测试 | 
|  * | 
|  * @author: dogstar 20141217 | 
|  */ | 
|   | 
| require_once dirname(__FILE__) . '/../test_env.php'; | 
|   | 
| if (!class_exists('PhalApi_Logger_File')) { | 
|     require dirname(__FILE__) . '/../../PhalApi/Logger/File.php'; | 
| } | 
|   | 
| class PhpUnderControl_PhalApiLoggerFile_Test extends PHPUnit_Framework_TestCase | 
| { | 
|     public $coreLoggerFile; | 
|   | 
|     protected function setUp() | 
|     { | 
|         parent::setUp(); | 
|   | 
|         $cmd = sprintf('rm %s -rf', dirname(__FILE__) . '/Runtime'); | 
|         shell_exec($cmd); | 
|   | 
|         $this->coreLoggerFile = new PhalApi_Logger_File(dirname(__FILE__) . '/Runtime', | 
|             PhalApi_Logger::LOG_LEVEL_DEBUG | PhalApi_Logger::LOG_LEVEL_INFO | PhalApi_Logger::LOG_LEVEL_ERROR); | 
|     } | 
|   | 
|     protected function tearDown() | 
|     { | 
|         $cmd = sprintf('rm %s -rf', dirname(__FILE__) . '/Runtime'); | 
|         shell_exec($cmd); | 
|     } | 
|   | 
|   | 
|     /** | 
|      * @group testLog | 
|      */  | 
|     public function testLog() | 
|     { | 
|         $this->coreLoggerFile->log('debug', 'debug from log', ''); | 
|         $this->coreLoggerFile->log('task', 'something test for task', array('from' => 'phpunit')); | 
|   | 
|         $this->assertLogExists('debug from log'); | 
|         $this->assertLogExists('something test for task'); | 
|     } | 
|   | 
|     public function testDebug() | 
|     { | 
|         $this->coreLoggerFile->debug('something debug here', array('name' => 'phpunit')); | 
|   | 
|         $this->coreLoggerFile->debug("This  | 
|             should not be  | 
|             multi line"); | 
|   | 
|         $this->assertLogExists('something debug here'); | 
|         $this->assertLogExists('This'); | 
|         $this->assertLogExists('should not be \n'); | 
|         $this->assertLogExists('multi'); | 
|     } | 
|   | 
|     public function testInfo() | 
|     { | 
|         $this->coreLoggerFile->info('something info here', 'phpunit'); | 
|         $this->coreLoggerFile->info('something info here', 2014); | 
|         $this->coreLoggerFile->info('something info here', true); | 
|   | 
|         $this->assertLogExists('something info here'); | 
|         $this->assertLogExists('phpunit'); | 
|         $this->assertLogExists('2014'); | 
|         $this->assertLogExists('1'); | 
|     } | 
|   | 
|     public function testError() | 
|     { | 
|         $this->coreLoggerFile->error('WTF!'); | 
|   | 
|         $this->assertLogExists('WTF!'); | 
|     } | 
|   | 
|     protected function assertLogExists($content) | 
|     { | 
|         $logFile = implode(DIRECTORY_SEPARATOR, array( | 
|             dirname(__FILE__) . '/Runtime', | 
|             'log', | 
|             date('Ym', time()), | 
|             date('Ymd', time()) . '.log' | 
|         )); | 
|   | 
|         $this->assertContains($content, file_get_contents($logFile)); | 
|     } | 
| } |