| <?php |
| |
| /** |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You 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 |
| * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0 |
| * @version $Revision$ |
| * @link http://logging.apache.org/log4php |
| */ |
| |
| class LoggerLoggingEventTestCaseAppender extends LoggerAppenderNull { |
| |
| protected $requiresLayout = true; |
| |
| public function append(LoggerLoggingEvent $event) { |
| $this->layout->format($event); |
| } |
| |
| } |
| |
| class LoggerLoggingEventTestCaseLayout extends LoggerLayout { |
| |
| public function activateOptions() { |
| return; |
| } |
| |
| public function format(LoggerLoggingEvent $event) { |
| LoggerLoggingEventTest::$locationInfo = $event->getLocationInformation(); |
| LoggerLoggingEventTest::$throwableInfo = $event->getThrowableInformation(); |
| } |
| } |
| |
| /** |
| * @group main |
| */ |
| class LoggerLoggingEventTest extends PHPUnit_Framework_TestCase { |
| |
| public static $locationInfo; |
| public static $throwableInfo; |
| |
| public function testConstructWithLoggerName() { |
| $l = LoggerLevel :: getLevelDebug(); |
| $e = new LoggerLoggingEvent('fqcn', 'TestLogger', $l, 'test'); |
| self::assertEquals($e->getLoggerName(), 'TestLogger'); |
| } |
| |
| public function testConstructWithTimestamp() { |
| $l = LoggerLevel :: getLevelDebug(); |
| $timestamp = microtime(true); |
| $e = new LoggerLoggingEvent('fqcn', 'TestLogger', $l, 'test', $timestamp); |
| self::assertEquals($e->getTimeStamp(), $timestamp); |
| } |
| |
| public function testGetStartTime() { |
| $time = LoggerLoggingEvent :: getStartTime(); |
| self::assertInternalType('float', $time); |
| $time2 = LoggerLoggingEvent :: getStartTime(); |
| self::assertEquals($time, $time2); |
| } |
| |
| public function testGetLocationInformation() { |
| $hierarchy = Logger::getHierarchy(); |
| $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; |
| |
| self::assertEquals($li->getClassName(), get_class($this)); |
| self::assertEquals($li->getFileName(), __FILE__); |
| self::assertEquals($li->getLineNumber(), $line); |
| self::assertEquals($li->getMethodName(), __FUNCTION__); |
| |
| } |
| |
| public function testGetThrowableInformation1() { |
| $hierarchy = Logger::getHierarchy(); |
| $root = $hierarchy->getRootLogger(); |
| |
| $a = new LoggerLoggingEventTestCaseAppender('A1'); |
| $a->setLayout( new LoggerLoggingEventTestCaseLayout() ); |
| $root->addAppender($a); |
| |
| $logger = $hierarchy->getLogger('test'); |
| $logger->debug('test'); |
| $hierarchy->shutdown(); |
| |
| $ti = self::$throwableInfo; |
| |
| self::assertEquals($ti, null); |
| } |
| |
| public function testGetThrowableInformation2() { |
| $hierarchy = Logger::getHierarchy(); |
| $root = $hierarchy->getRootLogger(); |
| |
| $a = new LoggerLoggingEventTestCaseAppender('A1'); |
| $a->setLayout( new LoggerLoggingEventTestCaseLayout() ); |
| $root->addAppender($a); |
| |
| $ex = new Exception('Message1'); |
| $logger = $hierarchy->getLogger('test'); |
| $logger->debug('test', $ex); |
| $hierarchy->shutdown(); |
| |
| $ti = self::$throwableInfo; |
| |
| self::assertTrue($ti instanceof LoggerThrowableInformation); |
| |
| $result = $ti->getStringRepresentation(); |
| self::assertInternalType('array', $result); |
| } |
| } |