blob: d612228e7c4de324b41a17377997aae151977f88 [file] [log] [blame]
<?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
* @subpackage renderers
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
* @version $Revision$
* @link http://logging.apache.org/log4php
*/
/**
* @group renderers
*/
class LoggerRendererExceptionTest extends PHPUnit_Framework_TestCase {
public function testRender() {
$exRenderer = new LoggerRendererException();
$ex1 = new LoggerRendererExceptionTestException('Message1');
$ex2 = new LoggerRendererExceptionTestException('Message2', 0, $ex1);
$ex3 = new LoggerRendererExceptionTestException('Message3', 0, $ex2);
$rendered = $exRenderer->render($ex3);
$expected = 3;
$result = substr_count($rendered, 'Throwable(LoggerRendererExceptionTestException): Message');
$this->assertEquals($expected, $result);
$expected = 2;
$result = substr_count($rendered, 'Caused by: Throwable(LoggerRendererExceptionTestException):');
$this->assertEquals($expected, $result);
$expected = 1;
$result = substr_count($rendered, 'Caused by: Throwable(LoggerRendererExceptionTestException): Message2');
$this->assertEquals($expected, $result);
$expected = 1;
$result = substr_count($rendered, 'Caused by: Throwable(LoggerRendererExceptionTestException): Message1');
$this->assertEquals($expected, $result);
}
}
if (version_compare(PHP_VERSION, '5.3.0') >= 0) {
class LoggerRendererExceptionTestException extends Exception { }
} else {
class LoggerRendererExceptionTestException extends Exception {
protected $previous;
public function __construct($message = '', $code = 0, Exception $previous = null) {
parent::__construct($message, $code);
$this->previous = $previous;
}
public function getPrevious() {
return $this->previous;
}
}
}
?>