You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4php-dev@logging.apache.org by ma...@apache.org on 2006/01/14 18:02:06 UTC

svn commit: r369054 - in /logging/log4php/trunk/src/php5/tests/spi: AllTests.php LoggerLoggingEventTestCase.php

Author: marco
Date: Sat Jan 14 09:01:58 2006
New Revision: 369054

URL: http://svn.apache.org/viewcvs?rev=369054&view=rev
Log:
spi subpackage test cases

Added:
    logging/log4php/trunk/src/php5/tests/spi/AllTests.php
    logging/log4php/trunk/src/php5/tests/spi/LoggerLoggingEventTestCase.php

Added: logging/log4php/trunk/src/php5/tests/spi/AllTests.php
URL: http://svn.apache.org/viewcvs/logging/log4php/trunk/src/php5/tests/spi/AllTests.php?rev=369054&view=auto
==============================================================================
--- logging/log4php/trunk/src/php5/tests/spi/AllTests.php (added)
+++ logging/log4php/trunk/src/php5/tests/spi/AllTests.php Sat Jan 14 09:01:58 2006
@@ -0,0 +1,60 @@
+<?php
+/**
+ * Copyright 1999,2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * 
+ * @category   tests   
+ * @package    log4php
+ * @author     Marco Vassura
+ * @license    http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
+ * @version    SVN: $Id$
+ * @link       http://logging.apache.org/log4php
+ */
+
+/** */
+if (!defined('PHPUnit2_MAIN_METHOD')) {
+    define('PHPUnit2_MAIN_METHOD', 'spi_AllTests::main');
+}
+if (!defined('LOG4PHP_DIR')) {
+    define('LOG4PHP_DIR', '../log4php');
+}
+
+if (!defined('LOG4PHP_DEFAULT_INIT_OVERRIDE')) {
+    define('LOG4PHP_DEFAULT_INIT_OVERRIDE', true);
+}
+
+require_once('PHPUnit2/Framework/TestSuite.php');
+require_once('PHPUnit2/TextUI/TestRunner.php');
+
+require_once('spi/LoggerLoggingEventTestCase.php');
+
+class spi_AllTests {
+
+    public static function main() {
+        PHPUnit2_TextUI_TestRunner::run(self::suite());
+    }
+
+    public static function suite() {
+        $suite = new PHPUnit2_Framework_TestSuite('spi');
+
+        $suite->addTestSuite('LoggerLoggingEventTestCase');
+        
+        return $suite;
+    }
+}
+
+if (PHPUnit2_MAIN_METHOD == 'spi_AllTests::main') {
+    spi_AllTests::main();
+}
+?>

Added: logging/log4php/trunk/src/php5/tests/spi/LoggerLoggingEventTestCase.php
URL: http://svn.apache.org/viewcvs/logging/log4php/trunk/src/php5/tests/spi/LoggerLoggingEventTestCase.php?rev=369054&view=auto
==============================================================================
--- logging/log4php/trunk/src/php5/tests/spi/LoggerLoggingEventTestCase.php (added)
+++ logging/log4php/trunk/src/php5/tests/spi/LoggerLoggingEventTestCase.php Sat Jan 14 09:01:58 2006
@@ -0,0 +1,104 @@
+<?php
+
+/**
+ * Copyright 1999,2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * 
+ * @category   tests
+ * @package    log4php
+ * @subpackage spi
+ * @author     Marco Vassura
+ * @license    http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
+ * @version    SVN: $Id$
+ * @link       http://logging.apache.org/log4php
+ */
+
+/**  */
+require_once 'PHPUnit2/Framework/TestCase.php';
+
+require_once LOG4PHP_DIR.'/appenders/LoggerAppenderNull.php';
+require_once LOG4PHP_DIR.'/spi/LoggerLoggingEvent.php';
+require_once LOG4PHP_DIR.'/LoggerHierarchy.php';
+require_once LOG4PHP_DIR.'/LoggerLayout.php';
+
+class LoggerLoggingEventTestCaseAppender extends LoggerAppenderNull {
+	
+	protected $requiresLayout = true;
+
+	protected function append($event) {
+		$this->layout->format($event);
+	}
+
+}
+
+class LoggerLoggingEventTestCaseLayout extends LoggerLayout { 
+	
+	public function activateOptions() {
+		return;
+	}
+	
+	public function format($event) {
+		LoggerLoggingEventTestCase::$locationInfo = $event->getLocationInformation();
+	}
+}
+
+class LoggerLoggingEventTestCase extends PHPUnit2_Framework_TestCase {
+	
+	public static $locationInfo;
+
+	public function testConstructWithLoggerName() {
+		$l = LoggerLevel :: getLevelDebug();
+		$e = new LoggerLoggingEvent('fqcn', 'TestLogger', $l, 'test');
+		$this->assertEquals($e->getLoggerName(), 'TestLogger');
+	}
+
+	public function testConstructWithTimestamp() {
+		$l = LoggerLevel :: getLevelDebug();
+		$timestamp = microtime(true);
+		$e = new LoggerLoggingEvent('fqcn', 'TestLogger', $l, 'test', $timestamp);
+		$this->assertEquals($e->getTimeStamp(), $timestamp);
+	}
+
+	public function testGetStartTime() {
+		$time = LoggerLoggingEvent :: getStartTime();
+		$this->assertType('double', $time);
+		$time2 = LoggerLoggingEvent :: getStartTime();
+		$this->assertEquals($time, $time2);
+	}
+
+	public function testGetLocationInformation() {
+		$hierarchy = LoggerHierarchy :: singleton();
+		$root = $hierarchy->getRootLogger();
+
+		$a = new LoggerLoggingEventTestCaseAppender('A1');
+		$a->setLayout( new LoggerLoggingEventTestCaseLayout() );
+		$root->addAppender($a);
+		
+		$logger = $hierarchy->getLogger('test');
+
+		$line = __LINE__; $logger->debug('test');
+		$hierarchy->shutdown();
+		
+		$li = self::$locationInfo;
+		
+		$this->assertEquals($li->getClassName(), get_class($this));
+		$this->assertEquals($li->getFileName(), __FILE__);
+		$this->assertEquals($li->getLineNumber(), $line);
+		$this->assertEquals($li->getMethodName(), __FUNCTION__);
+
+	}
+
+}
+?>
+