| <?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 |
| * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0 |
| * @link http://logging.apache.org/log4php |
| */ |
| |
| namespace Apache\Log4php\Tests; |
| |
| use Apache\Log4php\Appenders\NullAppender; |
| use Apache\Log4php\Layouts\AbstractLayout; |
| use Apache\Log4php\Level; |
| use Apache\Log4php\Logger; |
| use Apache\Log4php\LoggingEvent; |
| |
| class LoggingEventTestCaseAppender extends NullAppender { |
| |
| protected $requiresLayout = true; |
| |
| public function append(LoggingEvent $event) { |
| $this->layout->format($event); |
| } |
| } |
| |
| class LoggingEventTestCaseLayout extends AbstractLayout { |
| |
| public function activateOptions() { |
| return; |
| } |
| |
| public function format(LoggingEvent $event) { |
| LoggingEventTest::$locationInfo = $event->getLocationInformation(); |
| LoggingEventTest::$throwableInfo = $event->getThrowableInformation(); |
| } |
| } |
| |
| /** |
| * @group main |
| */ |
| class LoggingEventTest extends \PHPUnit_Framework_TestCase { |
| |
| public static $locationInfo; |
| public static $throwableInfo; |
| |
| public function testConstructWithLoggerName() { |
| $l = Level::getLevelDebug(); |
| $e = new LoggingEvent('fqcn', 'TestLogger', $l, 'test'); |
| self::assertEquals($e->getLoggerName(), 'TestLogger'); |
| } |
| |
| public function testConstructWithTimestamp() { |
| $l = Level::getLevelDebug(); |
| $timestamp = microtime(true); |
| $e = new LoggingEvent('fqcn', 'TestLogger', $l, 'test', $timestamp); |
| self::assertEquals($e->getTimeStamp(), $timestamp); |
| } |
| |
| public function testGetStartTime() { |
| $time = LoggingEvent::getStartTime(); |
| self::assertInternalType('float', $time); |
| $time2 = LoggingEvent::getStartTime(); |
| self::assertEquals($time, $time2); |
| } |
| |
| public function testGetLocationInformation() { |
| $hierarchy = Logger::getHierarchy(); |
| $root = $hierarchy->getRootLogger(); |
| |
| $a = new LoggingEventTestCaseAppender('A1'); |
| $a->setLayout(new LoggingEventTestCaseLayout()); |
| $root->addAppender($a); |
| |
| $logger = $hierarchy->getLogger('test'); |
| |
| $line = __LINE__; $logger->debug('test'); |
| $hierarchy->shutdown(); |
| |
| $li = self::$locationInfo; |
| |
| self::assertEquals(get_class($this), $li->getClassName()); |
| self::assertEquals(__FILE__, $li->getFileName()); |
| self::assertEquals($line, $li->getLineNumber()); |
| self::assertEquals(__FUNCTION__, $li->getMethodName()); |
| } |
| |
| public function testGetThrowableInformation1() { |
| $hierarchy = Logger::getHierarchy(); |
| $root = $hierarchy->getRootLogger(); |
| |
| $a = new LoggingEventTestCaseAppender('A1'); |
| $a->setLayout( new LoggingEventTestCaseLayout() ); |
| $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 LoggingEventTestCaseAppender('A1'); |
| $a->setLayout( new LoggingEventTestCaseLayout() ); |
| $root->addAppender($a); |
| |
| $ex = new \Exception('Message1'); |
| $logger = $hierarchy->getLogger('test'); |
| $logger->debug('test', $ex); |
| $hierarchy->shutdown(); |
| |
| $ti = self::$throwableInfo; |
| |
| self::assertInstanceOf("Apache\\Log4php\\ThrowableInformation", $ti); |
| |
| $result = $ti->getStringRepresentation(); |
| self::assertInternalType('array', $result); |
| } |
| } |