Added: 
logging/log4php/trunk/src/test/php/configurators/LoggerConfigurationAdapterXMLTest.php
URL: 
http://svn.apache.org/viewvc/logging/log4php/trunk/src/test/php/configurators/LoggerConfigurationAdapterXMLTest.php?rev=1184770&view=auto
==============================================================================
--- 
logging/log4php/trunk/src/test/php/configurators/LoggerConfigurationAdapterXMLTest.php
 (added)
+++ 
logging/log4php/trunk/src/test/php/configurators/LoggerConfigurationAdapterXMLTest.php
 Sun Oct 16 07:12:49 2011
@@ -0,0 +1,163 @@
+<?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.
+ *
+ * @package log4php
+ */
+
+/**
+ * @group configurators
+ */
+class LoggerConfigurationAdapterXMLTest extends PHPUnit_Framework_TestCase {
+       
+       /** Expected output of parsing config1.xml.*/
+       private $expected1 = array(
+               'appenders' => array(
+                       'default' => array(
+                               'class' => 'LoggerAppenderEcho',
+                               'layout' => array(
+                                       'class' => 'LoggerLayoutTTCC',
+                               ),
+                               'filters' => array(
+                                       array(
+                                               'class' => 
'LoggerFilterLevelRange',
+                                               'params' => array(
+                                                       'levelMin' => 'ERROR',
+                                                       'levelMax' => 'FATAL',
+                                                       'acceptOnMatch' => 
'false',
+                                               ),
+                                       ),
+                                       array(
+                                               'class' => 
'LoggerFilterDenyAll',
+                                       ),
+                               ),
+                       ),
+                       'file' => array(
+                               'class' => 'LoggerAppenderDailyFile',
+                               'layout' => array(
+                                       'class' => 'LoggerLayoutPattern',
+                                       'params' => array(
+                                               'conversionPattern' => 
'%d{ISO8601} [%p] %c: %m (at %F line %L)%n',
+                                       ),
+                               ),
+                               'params' => array(
+                                       'datePattern' => 'Ymd',
+                                       'file' => 
'target/examples/daily_%s.log',
+                               ),
+                               'threshold' => 'warn'
+                       ),
+               ),
+               'loggers' => array(
+                       'foo.bar.baz' => array(
+                               'level' => 'trace',
+                               'additivity' => 'false',
+                               'appenders' => array('default'),
+                       ),
+                       'foo.bar' => array(
+                               'level' => 'debug',
+                               'additivity' => 'true',
+                               'appenders' => array('file'),
+                       ),
+                       'foo' => array(
+                               'level' => 'warn',
+                               'appenders' => array('default', 'file'),
+                       ),
+               ),
+               'renderers' => array(
+                       array(
+                               'renderedClass' => 'Fruit',
+                               'renderingClass' => 'FruitRenderer',
+                       ),
+                       array(
+                               'renderedClass' => 'Beer',
+                               'renderingClass' => 'BeerRenderer',
+                       ),
+               ),
+               'threshold' => 'debug',
+               'rootLogger' => array(
+                       'level' => 'DEBUG',
+                       'appenders' => array('default'),
+               ),
+       );
+       
+       public function setUp() {
+               Logger::resetConfiguration();
+       }
+       
+       public function tearDown() {
+               Logger::resetConfiguration();
+       }
+       
+       public function testConversion() {
+               $url =  dirname(__FILE__) . '/config1.xml';
+               $adapter = new LoggerConfigurationAdapterXML();
+               $actual = $adapter->convert($url);
+               $this->assertEquals($this->expected1, $actual);
+       }
+       
+       /**
+        * Test exception is thrown when file cannot be found.
+        * @expectedException LoggerException
+        * @expectedExceptionMessage File [you/will/never/find/me.conf] does 
not exist.
+        */
+       public function testNonExistantFile() {
+               $adapter = new LoggerConfigurationAdapterXML();
+               $adapter->convert('you/will/never/find/me.conf');
+       }
+       
+       /**
+        * Test exception is thrown when file contains invalid XML.
+        * @ expectedException LoggerException
+        * @ expectedExceptionMessage Cannot load config file
+        */
+       public function testInvalidXMLFile() {
+               // TODO: fix error reporting for XML files
+               //$url =  dirname(__FILE__) . '/config4.xml';
+               //$adapter = new LoggerConfigurationAdapterXML();
+               //$adapter->convert($url);
+       }
+       
+       /**
+        * Test that a warning is triggered when two loggers with the same name 
+        * are defined.
+        * @expectedException PHPUnit_Framework_Error
+        * @expectedExceptionMessage log4php: Duplicate logger definition 
[foo]. Overwriting
+        */
+       public function testDuplicateLoggerWarning() {
+               $url =  dirname(__FILE__) . '/config3.xml';
+               $adapter = new LoggerConfigurationAdapterXML();
+               $adapter->convert($url);
+       }
+       
+       
+       /**
+        * Test that when two loggers with the same name are defined, the 
second 
+        * one will overwrite the first.
+        */
+       public function testDuplicateLoggerConfig() {
+               $url =  dirname(__FILE__) . '/config3.xml';
+               $adapter = new LoggerConfigurationAdapterXML();
+               
+               // Supress the warning so that test can continue 
+               $config = @$adapter->convert($url);
+
+               // Second definition of foo has level set to warn (the first to 
info)
+               $this->assertEquals('warn', 
$config['loggers']['foo']['level']);                
+       }
+}
+
+?>
\ No newline at end of file

Added: logging/log4php/trunk/src/test/php/configurators/config1.ini
URL: 
http://svn.apache.org/viewvc/logging/log4php/trunk/src/test/php/configurators/config1.ini?rev=1184770&view=auto
==============================================================================
--- logging/log4php/trunk/src/test/php/configurators/config1.ini (added)
+++ logging/log4php/trunk/src/test/php/configurators/config1.ini Sun Oct 16 
07:12:49 2011
@@ -0,0 +1,24 @@
+log4php.rootLogger = DEBUG, default
+
+log4php.appender.default = LoggerAppenderEcho
+log4php.appender.default.layout = LoggerLayoutTTCC
+
+log4php.appender.file = LoggerAppenderDailyFile
+log4php.appender.file.layout = LoggerLayoutPattern
+log4php.appender.file.layout.conversionPattern =%d{ISO8601} [%p] %c: %m (at %F 
line %L)%n
+log4php.appender.file.datePattern = Ymd
+log4php.appender.file.file = target/examples/daily_%s.log
+log4php.appender.file.threshold = warn
+
+log4php.logger.foo = warn, default
+
+log4php.logger.foo.bar = debug, file
+log4php.additivity.foo.bar = true
+
+log4php.logger.foo.bar.baz = trace, default, file
+log4php.additivity.foo.bar.baz = false
+
+log4php.renderer.Fruit = FruitRenderer
+log4php.renderer.Beer = BeerRenderer
+
+log4php.threshold = debug

Added: logging/log4php/trunk/src/test/php/configurators/config1.php
URL: 
http://svn.apache.org/viewvc/logging/log4php/trunk/src/test/php/configurators/config1.php?rev=1184770&view=auto
==============================================================================
--- logging/log4php/trunk/src/test/php/configurators/config1.php (added)
+++ logging/log4php/trunk/src/test/php/configurators/config1.php Sun Oct 16 
07:12:49 2011
@@ -0,0 +1,19 @@
+<?php
+
+return array(
+       'rootLogger' => array(
+               'level' => 'info',
+               'appenders' => array('default')
+       ),
+       'appenders' => array(
+               'default' => array(
+                       'class' => 'LoggerAppenderEcho',
+                       'layout' => array(
+                               'class' => 'LoggerLayoutSimple'
+                        )
+               )
+       )
+)
+;
+
+?>
\ No newline at end of file

Added: logging/log4php/trunk/src/test/php/configurators/config1.xml
URL: 
http://svn.apache.org/viewvc/logging/log4php/trunk/src/test/php/configurators/config1.xml?rev=1184770&view=auto
==============================================================================
--- logging/log4php/trunk/src/test/php/configurators/config1.xml (added)
+++ logging/log4php/trunk/src/test/php/configurators/config1.xml Sun Oct 16 
07:12:49 2011
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration xmlns="http://logging.apache.org/log4php"; threshold="debug">
+       <renderer renderedClass="Fruit" renderingClass="FruitRenderer" />
+       <renderer renderedClass="Beer" renderingClass="BeerRenderer" />
+    <appender name="default" class="LoggerAppenderEcho">
+        <layout class="LoggerLayoutTTCC"/>
+        <filter class="LoggerFilterLevelRange">
+            <param name="levelMin" value="ERROR" />
+            <param name="levelMax" value="FATAL" />
+            <param name="acceptOnMatch" value="false" />
+        </filter>
+        <filter class="LoggerFilterDenyAll" />
+    </appender>
+       <appender name="file" class="LoggerAppenderDailyFile" threshold="warn">
+               <param name="datePattern" value="Ymd" />
+               <param name="file" value="target/examples/daily_%s.log" />
+        <layout class="LoggerLayoutPattern">
+               <param name="conversionPattern" value= "%d{ISO8601} [%p] %c: %m 
(at %F line %L)%n" />
+        </layout>
+    </appender>
+    <logger name="foo.bar.baz" additivity="false">
+        <level value="trace" />
+        <appender_ref ref="default" />
+    </logger>
+    <logger name="foo.bar" additivity="true">
+        <level value="debug" />
+        <appender_ref ref="file" />
+    </logger>
+    <logger name="foo">
+        <level value="warn" />
+        <appender_ref ref="default" />
+        <appender_ref ref="file" />
+    </logger>
+    <root>
+        <level value="DEBUG" />
+        <appender_ref ref="default" />
+    </root>
+</configuration>

Added: logging/log4php/trunk/src/test/php/configurators/config2.ini
URL: 
http://svn.apache.org/viewvc/logging/log4php/trunk/src/test/php/configurators/config2.ini?rev=1184770&view=auto
==============================================================================
--- logging/log4php/trunk/src/test/php/configurators/config2.ini (added)
+++ logging/log4php/trunk/src/test/php/configurators/config2.ini Sun Oct 16 
07:12:49 2011
@@ -0,0 +1,2 @@
+not a valid ini file ()
+ 

Added: logging/log4php/trunk/src/test/php/configurators/config2.php
URL: 
http://svn.apache.org/viewvc/logging/log4php/trunk/src/test/php/configurators/config2.php?rev=1184770&view=auto
==============================================================================
--- logging/log4php/trunk/src/test/php/configurators/config2.php (added)
+++ logging/log4php/trunk/src/test/php/configurators/config2.php Sun Oct 16 
07:12:49 2011
@@ -0,0 +1,20 @@
+<?php
+
+
+return array(
+       'rootLogger' => array(
+               'level' => 'info',
+               'appenders' => array('default')
+       ),
+       'appenders' => array(
+               'default' => array(
+                       'class' => 'LoggerAppenderEcho',
+                       'layout' => array(
+                               'class' => 'LoggerLayoutSimple'
+                        )
+               )
+       )
+
+// Invalid file - no closing brace.
+       
+?>
\ No newline at end of file

Added: logging/log4php/trunk/src/test/php/configurators/config2.xml
URL: 
http://svn.apache.org/viewvc/logging/log4php/trunk/src/test/php/configurators/config2.xml?rev=1184770&view=auto
==============================================================================
--- logging/log4php/trunk/src/test/php/configurators/config2.xml (added)
+++ logging/log4php/trunk/src/test/php/configurators/config2.xml Sun Oct 16 
07:12:49 2011
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+       <!-- Duplicate renderer -->
+       <renderer renderedClass="Fruit" renderingClass="FruitRenderer1" />
+       <renderer renderedClass="Fruit" renderingClass="FruitRenderer2" />
+       <renderer renderedClass="Beer" renderingClass="BeerRenderer" />
+    <appender name="default" class="LoggerAppenderEcho">
+        <layout class="LoggerLayoutSimple"/>
+    </appender>
+    <root>
+        <level value="DEBUG" />
+        <appender_ref ref="default" />
+    </root>
+</configuration>
\ No newline at end of file

Added: logging/log4php/trunk/src/test/php/configurators/config3.ini
URL: 
http://svn.apache.org/viewvc/logging/log4php/trunk/src/test/php/configurators/config3.ini?rev=1184770&view=auto
==============================================================================
--- logging/log4php/trunk/src/test/php/configurators/config3.ini (added)
+++ logging/log4php/trunk/src/test/php/configurators/config3.ini Sun Oct 16 
07:12:49 2011
@@ -0,0 +1,7 @@
+log4php.rootLogger = DEBUG, default
+
+log4php.appender.default = LoggerAppenderEcho
+
+# invalid appender line should trigger warning
+log4php.appender.default.layout.param.bla = LoggerLayoutTTCC
+ 
\ No newline at end of file

Added: logging/log4php/trunk/src/test/php/configurators/config3.php
URL: 
http://svn.apache.org/viewvc/logging/log4php/trunk/src/test/php/configurators/config3.php?rev=1184770&view=auto
==============================================================================
--- logging/log4php/trunk/src/test/php/configurators/config3.php (added)
+++ logging/log4php/trunk/src/test/php/configurators/config3.php Sun Oct 16 
07:12:49 2011
@@ -0,0 +1,5 @@
+<?php
+
+// Empty config
+
+?>
\ No newline at end of file

Added: logging/log4php/trunk/src/test/php/configurators/config3.xml
URL: 
http://svn.apache.org/viewvc/logging/log4php/trunk/src/test/php/configurators/config3.xml?rev=1184770&view=auto
==============================================================================
--- logging/log4php/trunk/src/test/php/configurators/config3.xml (added)
+++ logging/log4php/trunk/src/test/php/configurators/config3.xml Sun Oct 16 
07:12:49 2011
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration xmlns="http://logging.apache.org/log4php"; threshold="debug">
+
+    <appender name="default" class="LoggerAppenderEcho">
+        <layout class="LoggerLayoutSimple"/>
+    </appender>
+    
+    <!-- Duplicate logger -->
+    <logger name="foo">
+        <level value="info" />
+        <appender_ref ref="default" />
+    </logger>
+    
+    <logger name="foo">
+        <level value="warn" />
+        <appender_ref ref="default" />
+    </logger>
+    
+    <root>
+        <level value="DEBUG" />
+        <appender_ref ref="default" />
+    </root>
+</configuration>
\ No newline at end of file

Added: logging/log4php/trunk/src/test/php/configurators/config4.ini
URL: 
http://svn.apache.org/viewvc/logging/log4php/trunk/src/test/php/configurators/config4.ini?rev=1184770&view=auto
==============================================================================
--- logging/log4php/trunk/src/test/php/configurators/config4.ini (added)
+++ logging/log4php/trunk/src/test/php/configurators/config4.ini Sun Oct 16 
07:12:49 2011
@@ -0,0 +1,7 @@
+log4php.rootLogger = DEBUG, default
+
+log4php.appender.default = LoggerAppenderEcho
+
+# invalid appender line should trigger warning
+log4php.appender.default.not-layout.param = LoggerLayoutTTCC
+ 
\ No newline at end of file

Added: logging/log4php/trunk/src/test/php/configurators/config4.php
URL: 
http://svn.apache.org/viewvc/logging/log4php/trunk/src/test/php/configurators/config4.php?rev=1184770&view=auto
==============================================================================
--- logging/log4php/trunk/src/test/php/configurators/config4.php (added)
+++ logging/log4php/trunk/src/test/php/configurators/config4.php Sun Oct 16 
07:12:49 2011
@@ -0,0 +1,6 @@
+<?php
+
+// Not an array
+return new Exception();
+
+?>
\ No newline at end of file

Added: logging/log4php/trunk/src/test/php/configurators/config4.xml
URL: 
http://svn.apache.org/viewvc/logging/log4php/trunk/src/test/php/configurators/config4.xml?rev=1184770&view=auto
==============================================================================
--- logging/log4php/trunk/src/test/php/configurators/config4.xml (added)
+++ logging/log4php/trunk/src/test/php/configurators/config4.xml Sun Oct 16 
07:12:49 2011
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration xmlns="http://logging.apache.org/log4php"; threshold="debug">
+
+    <appender name="default" class="LoggerAppenderEcho">
+        <layout class="LoggerLayoutSimple"/>
+    </appender>
+    
+    <!-- Duplicate logger -->
+    <logger name="foo">
+        <level value="info" />
+        <appender_ref ref="default" />
+    </logger>
+    
+    <logger name="foo">
+        <level value="warn" />
+        <appender_ref ref="default" />
+    </logger>
+    
+    <root>
+        <level value="DEBUG" />
+        <appender_ref ref="default" />
+    </root>
+
+    <!-- Invalid XML file for testing -->
\ No newline at end of file

Modified: logging/log4php/trunk/src/test/php/filters/LoggerFilterDenyAllTest.php
URL: 
http://svn.apache.org/viewvc/logging/log4php/trunk/src/test/php/filters/LoggerFilterDenyAllTest.php?rev=1184770&r1=1184769&r2=1184770&view=diff
==============================================================================
--- logging/log4php/trunk/src/test/php/filters/LoggerFilterDenyAllTest.php 
(original)
+++ logging/log4php/trunk/src/test/php/filters/LoggerFilterDenyAllTest.php Sun 
Oct 16 07:12:49 2011
@@ -31,17 +31,41 @@ class LoggerFilterDenyAllTest extends PH
        public function testDecide() {
                $filter = new LoggerFilterDenyAll();
                
-               $eventError = new LoggerLoggingEvent("LoggerAppenderEchoTest", 
new Logger("TEST"), LoggerLevel::getLevelError(), "testmessage");
-               $eventDebug = new LoggerLoggingEvent("LoggerAppenderEchoTest", 
new Logger("TEST"), LoggerLevel::getLevelDebug(), "testmessage");
-               $eventWarn = new LoggerLoggingEvent("LoggerAppenderEchoTest", 
new Logger("TEST"), LoggerLevel::getLevelWarn(), "testmessage");
+               $events = array(
+                       LoggerTestHelper::getTraceEvent(),
+                       LoggerTestHelper::getDebugEvent(),
+                       LoggerTestHelper::getInfoEvent(),
+                       LoggerTestHelper::getWarnEvent(),
+                       LoggerTestHelper::getErrorEvent(),
+                       LoggerTestHelper::getFatalEvent(),
+               );
                
-               $result = $filter->decide($eventError);
-               self::assertEquals($result, LoggerFilter::DENY);
-               
-               $result = $filter->decide($eventDebug);
-               self::assertEquals($result, LoggerFilter::DENY);
-               
-               $result = $filter->decide($eventWarn);
-               self::assertEquals($result, LoggerFilter::DENY);
+               foreach($events as $event) {
+                       $actual = $filter->decide($event);
+                       self::assertEquals(LoggerFilter::DENY, $actual);
+               }
+    }
+    
+    public function testConfiguration() {
+       $config = LoggerConfigurator::getDefaultConfiguration();
+       $config['appenders']['default']['filters'] = array(
+               array(
+                       'class' => 'LoggerFilterDenyAll'
+               )
+       );
+       
+       Logger::configure($config);
+       $logger = Logger::getRootLogger();
+       
+       ob_start();
+       $logger->trace('Test');
+       $logger->debug('Test');
+       $logger->info('Test');
+       $logger->warn('Test');
+       $logger->error('Test');
+       $logger->fatal('Test');
+       $actual = ob_get_clean();
+       
+       $this->assertEmpty($actual);
     }
 }

Modified: 
logging/log4php/trunk/src/test/php/filters/LoggerFilterLevelMatchTest.php
URL: 
http://svn.apache.org/viewvc/logging/log4php/trunk/src/test/php/filters/LoggerFilterLevelMatchTest.php?rev=1184770&r1=1184769&r2=1184770&view=diff
==============================================================================
--- logging/log4php/trunk/src/test/php/filters/LoggerFilterLevelMatchTest.php 
(original)
+++ logging/log4php/trunk/src/test/php/filters/LoggerFilterLevelMatchTest.php 
Sun Oct 16 07:12:49 2011
@@ -27,99 +27,155 @@
  * @group filters
  */
 class LoggerFilterLevelMatchTest extends PHPUnit_Framework_TestCase {
-        
-       public function testDecideAcceptErrorLevel() {
-               $filter = new LoggerFilterLevelMatch();
-               $filter->setAcceptOnMatch(true);
-               $filter->setLevelToMatch(LoggerLevel::getLevelError());
-               
-               $eventError = new LoggerLoggingEvent("LoggerAppenderEchoTest", 
new Logger("TEST"), LoggerLevel::getLevelError(), "testmessage");
-               $eventDebug = new LoggerLoggingEvent("LoggerAppenderEchoTest", 
new Logger("TEST"), LoggerLevel::getLevelDebug(), "testmessage");
-               $eventWarn = new LoggerLoggingEvent("LoggerAppenderEchoTest", 
new Logger("TEST"), LoggerLevel::getLevelWarn(), "testmessage");
-               
-               $result = $filter->decide($eventError);
-               self::assertEquals($result, LoggerFilter::ACCEPT);
-               
-               $result = $filter->decide($eventDebug);
-               self::assertEquals($result, LoggerFilter::NEUTRAL);
-               
-               $result = $filter->decide($eventWarn);
-               self::assertEquals($result, LoggerFilter::NEUTRAL);
-    }
-    
-    public function testDecideDenyErrorLevel() {
-               $filter = new LoggerFilterLevelMatch();
-               $filter->setAcceptOnMatch("false");
-               $filter->setLevelToMatch(LoggerLevel::getLevelError());
-               
-               $eventError = new LoggerLoggingEvent("LoggerAppenderEchoTest", 
new Logger("TEST"), LoggerLevel::getLevelError(), "testmessage");
-               $eventDebug = new LoggerLoggingEvent("LoggerAppenderEchoTest", 
new Logger("TEST"), LoggerLevel::getLevelDebug(), "testmessage");
-               $eventWarn = new LoggerLoggingEvent("LoggerAppenderEchoTest", 
new Logger("TEST"), LoggerLevel::getLevelWarn(), "testmessage");
-               
-               $result = $filter->decide($eventError);
-               self::assertEquals($result, LoggerFilter::DENY);
-               
-               $result = $filter->decide($eventDebug);
-               self::assertEquals($result, LoggerFilter::NEUTRAL);
-               
-               $result = $filter->decide($eventWarn);
-               self::assertEquals($result, LoggerFilter::NEUTRAL);
-    }
-    
-    public function testDecideAcceptWarnLevel() {
+
+       /** 
+        * Tests all possible combinations of event level and filter 
levelToMatch 
+        * option, with acceptOnMatch set to TRUE. 
+        */
+       public function testDecideAccept() {
                $filter = new LoggerFilterLevelMatch();
                $filter->setAcceptOnMatch("true");
-               $filter->setLevelToMatch(LoggerLevel::getLevelWarn());
                
-               $eventError = new LoggerLoggingEvent("LoggerAppenderEchoTest", 
new Logger("TEST"), LoggerLevel::getLevelError(), "testmessage");
-               $eventDebug = new LoggerLoggingEvent("LoggerAppenderEchoTest", 
new Logger("TEST"), LoggerLevel::getLevelDebug(), "testmessage");
-               $eventWarn = new LoggerLoggingEvent("LoggerAppenderEchoTest", 
new Logger("TEST"), LoggerLevel::getLevelWarn(), "testmessage");
-               
-               $result = $filter->decide($eventError);
-               self::assertEquals($result, LoggerFilter::NEUTRAL);
-               
-               $result = $filter->decide($eventDebug);
-               self::assertEquals($result, LoggerFilter::NEUTRAL);
-               
-               $result = $filter->decide($eventWarn);
-               self::assertEquals($result, LoggerFilter::ACCEPT);
-    }
-    
-    public function testDecideDenyWarnLevel() {
-               $filter = new LoggerFilterLevelMatch();
-               $filter->setAcceptOnMatch("false");
-               $filter->setLevelToMatch(LoggerLevel::getLevelWarn());
+               $levels = LoggerTestHelper::getAllLevels();
+               $events = LoggerTestHelper::getAllEvents();
                
-               $eventError = new LoggerLoggingEvent("LoggerAppenderEchoTest", 
new Logger("TEST"), LoggerLevel::getLevelError(), "testmessage");
-               $eventDebug = new LoggerLoggingEvent("LoggerAppenderEchoTest", 
new Logger("TEST"), LoggerLevel::getLevelDebug(), "testmessage");
-               $eventWarn = new LoggerLoggingEvent("LoggerAppenderEchoTest", 
new Logger("TEST"), LoggerLevel::getLevelWarn(), "testmessage");
-               
-               $result = $filter->decide($eventError);
-               self::assertEquals($result, LoggerFilter::NEUTRAL);
-               
-               $result = $filter->decide($eventDebug);
-               self::assertEquals($result, LoggerFilter::NEUTRAL);
-               
-               $result = $filter->decide($eventWarn);
-               self::assertEquals($result, LoggerFilter::DENY);
-    }
-    
-    public function testDecideDenyDebugLevel() {
+               foreach($levels as $level) {
+                       $filter->setLevelToMatch($level);
+                       
+                       foreach($events as $event) {
+                               // Expecting given level to be accepted, 
neutral for others
+                               $expected = ($event->getLevel() == $level) ? 
LoggerFilter::ACCEPT : LoggerFilter::NEUTRAL;
+                               $actual = $filter->decide($event);
+                                       
+                               // Get string represenations for logging
+                               $sExpected = 
LoggerTestHelper::decisionToString($expected);
+                               $sActual = 
LoggerTestHelper::decisionToString($actual);
+                               
+                               $this->assertSame($expected, $actual, "Failed 
asserting filter decision for event level <$level>. Expected <$sExpected>, 
found <$sActual>.");
+                       }
+               }
+       }
+       
+       /**
+        * Tests all possible combinations of event level and filter 
levelToMatch
+        * option, with acceptOnMatch set to TRUE.
+        */
+       public function testDecideDeny() {
                $filter = new LoggerFilterLevelMatch();
                $filter->setAcceptOnMatch("false");
-               $filter->setLevelToMatch(LoggerLevel::getLevelDebug());
-               
-               $eventError = new LoggerLoggingEvent("LoggerAppenderEchoTest", 
new Logger("TEST"), LoggerLevel::getLevelError(), "testmessage");
-               $eventDebug = new LoggerLoggingEvent("LoggerAppenderEchoTest", 
new Logger("TEST"), LoggerLevel::getLevelDebug(), "testmessage");
-               $eventWarn = new LoggerLoggingEvent("LoggerAppenderEchoTest", 
new Logger("TEST"), LoggerLevel::getLevelWarn(), "testmessage");
-               
-               $result = $filter->decide($eventError);
-               self::assertEquals($result, LoggerFilter::NEUTRAL);
-               
-               $result = $filter->decide($eventDebug);
-               self::assertEquals($result, LoggerFilter::DENY);
+       
+               $levels = LoggerTestHelper::getAllLevels();
+               $events = LoggerTestHelper::getAllEvents();
+       
+               foreach($levels as $level) {
+                       $filter->setLevelToMatch($level);
+                               
+                       foreach($events as $event) {
+                               // Expecting given level to be denied, neutral 
for others
+                               $expected = ($event->getLevel() == $level) ? 
LoggerFilter::DENY : LoggerFilter::NEUTRAL;
+                               $actual = $filter->decide($event);
+                                       
+                               // Get string represenations for logging
+                               $sExpected = 
LoggerTestHelper::decisionToString($expected);
+                               $sActual = 
LoggerTestHelper::decisionToString($actual);
+       
+                               $this->assertSame($expected, $actual, "Failed 
asserting filter decision for event level <$level>. Expected <$sExpected>, 
found <$sActual>.");
+                       }
+               }
+       }
+       
+       /** Test that filter always decides NEUTRAL when levelToMatch is not 
set. */
+       public function testDecideNull() {
+               $filter = new LoggerFilterLevelMatch();
+               $events = LoggerTestHelper::getAllEvents();
                
-               $result = $filter->decide($eventWarn);
-               self::assertEquals($result, LoggerFilter::NEUTRAL);
-    }
+               foreach($events as $event) {
+                       $expected = LoggerFilter::NEUTRAL;
+                       $actual = $filter->decide($event);
+                               
+                       // Get string represenations for logging
+                       $sExpected = 
LoggerTestHelper::decisionToString($expected);
+                       $sActual = LoggerTestHelper::decisionToString($actual);
+                       $level = $event->getLevel();
+                       
+                       $this->assertSame($expected, $actual, "Failed asserting 
filter decision for event level <$level>. Expected <$sExpected>, found 
<$sActual>.");
+               }
+       }
+       
+       /** Test logger configuration. */
+       public function testAcceptConfig() {
+               $config = LoggerTestHelper::getEchoConfig();
+               
+               // Add filters to default appender
+               $config['appenders']['default']['filters'] = array(
+                       
+                       // Accepts only INFO events
+                       array(
+                               'class' => 'LoggerFilterLevelMatch',
+                               'params' => array(
+                                       'levelToMatch' => 'info',
+                                       'acceptOnMatch' => true
+                               )
+                       ),
+                       
+                       // Denies all events not accepted by first filter
+                       array(
+                               'class' => 'LoggerFilterDenyAll',
+                       )
+               );
+                
+               Logger::configure($config);
+               $logger = Logger::getRootLogger();
+                
+               ob_start();
+               $logger->trace('Test');
+               $logger->debug('Test');
+               $logger->info('Test');
+               $logger->warn('Test');
+               $logger->error('Test');
+               $logger->fatal('Test');
+               
+               $actual = ob_get_clean();
+
+               
+               $expected = "INFO - Test" . PHP_EOL;
+       }
+       
+       public function testDenyConfig() {
+               $config = LoggerTestHelper::getEchoConfig();
+       
+               // Add filter which denies INFO events
+               $config['appenders']['default']['filters'] = array(
+                       array(
+                               'class' => 'LoggerFilterLevelMatch',
+                               'params' => array(
+                                       'levelToMatch' => 'info',
+                                       'acceptOnMatch' => false
+                               )
+                       )
+               );
+                       
+               Logger::configure($config);
+               $logger = Logger::getRootLogger();
+                       
+               ob_start();
+               $logger->trace('Test');
+               $logger->debug('Test');
+               $logger->info('Test');
+               $logger->warn('Test');
+               $logger->error('Test');
+               $logger->fatal('Test');
+       
+               $actual = ob_get_clean();
+               
+               // Should log all except info
+               $expected = 
+                       "TRACE - Test" . PHP_EOL . 
+                       "DEBUG - Test" . PHP_EOL . 
+                       "WARN - Test"  . PHP_EOL . 
+                       "ERROR - Test" . PHP_EOL . 
+                       "FATAL - Test" . PHP_EOL;       
+       
+               $this->assertSame($expected, $actual);
+       }
 }

Modified: 
logging/log4php/trunk/src/test/php/filters/LoggerFilterStringMatchTest.php
URL: 
http://svn.apache.org/viewvc/logging/log4php/trunk/src/test/php/filters/LoggerFilterStringMatchTest.php?rev=1184770&r1=1184769&r2=1184770&view=diff
==============================================================================
--- logging/log4php/trunk/src/test/php/filters/LoggerFilterStringMatchTest.php 
(original)
+++ logging/log4php/trunk/src/test/php/filters/LoggerFilterStringMatchTest.php 
Sun Oct 16 07:12:49 2011
@@ -23,6 +23,8 @@
  * @link       http://logging.apache.org/log4php
  */
 
+require dirname(__FILE__) . '/../LoggerTestHelper.php';
+
 /**
  * @group filters
  */

Modified: logging/log4php/trunk/src/test/php/renderers/LoggerRendererMapTest.php
URL: 
http://svn.apache.org/viewvc/logging/log4php/trunk/src/test/php/renderers/LoggerRendererMapTest.php?rev=1184770&r1=1184769&r2=1184770&view=diff
==============================================================================
--- logging/log4php/trunk/src/test/php/renderers/LoggerRendererMapTest.php 
(original)
+++ logging/log4php/trunk/src/test/php/renderers/LoggerRendererMapTest.php Sun 
Oct 16 07:12:49 2011
@@ -46,7 +46,6 @@ class LoggerRendererMapTest extends PHPU
        public function testFindAndRender() {
                $fruit = new Fruit3();
                Logger::configure(dirname(__FILE__).'/test4.properties');
-               Logger::initialize();
                $hierarchy = Logger::getHierarchy();
                
                $map = $hierarchy->getRendererMap();
@@ -57,7 +56,6 @@ class LoggerRendererMapTest extends PHPU
        public function testFindAndRenderDescendants() {
                $fruit = new Fruit3Descendant();
                Logger::configure(dirname(__FILE__).'/test4.properties');
-               Logger::initialize();
                $hierarchy = Logger::getHierarchy();
 
                $map = $hierarchy->getRendererMap();
@@ -68,7 +66,6 @@ class LoggerRendererMapTest extends PHPU
        public function testGetByObject() {
                $fruit = new Fruit3();
                Logger::configure(dirname(__FILE__).'/test4.properties');
-               Logger::initialize();
                $hierarchy = Logger::getHierarchy();
                
                $map = $hierarchy->getRendererMap();
@@ -78,7 +75,6 @@ class LoggerRendererMapTest extends PHPU
         
        public function testGetByClassName() {
                Logger::configure(dirname(__FILE__).'/test4.properties');
-               Logger::initialize();
                $hierarchy = Logger::getHierarchy();
                
                $map = $hierarchy->getRendererMap();
@@ -89,14 +85,14 @@ class LoggerRendererMapTest extends PHPU
        public function testUsage() {
            Logger::resetConfiguration();
         Logger::configure(dirname(__FILE__).'/test4.properties');
-        Logger::initialize();
         $logger = Logger::getRootLogger();
  
         ob_start();
-        $logger->error(new Fruit3());
-        $v = ob_get_contents();
+        $logger->warn(new Fruit3());
+        $actual = ob_get_contents();
         ob_end_clean();
 
-        self::assertEquals("ERROR - test1,test2,test3" . PHP_EOL, $v);
+        $expected = "WARN - test1,test2,test3" . PHP_EOL;
+        self::assertEquals($expected, $actual);
        }
 }

Modified: logging/log4php/trunk/src/test/php/renderers/test4.properties
URL: 
http://svn.apache.org/viewvc/logging/log4php/trunk/src/test/php/renderers/test4.properties?rev=1184770&r1=1184769&r2=1184770&view=diff
==============================================================================
--- logging/log4php/trunk/src/test/php/renderers/test4.properties (original)
+++ logging/log4php/trunk/src/test/php/renderers/test4.properties Sun Oct 16 
07:12:49 2011
@@ -19,9 +19,9 @@ log4php.appender.default = LoggerAppende
 log4php.appender.default.layout = LoggerLayoutSimple
 log4php.appender.default.threshold = WARN
 
-log4php.appender.blub2 = LoggerAppenderEcho
+log4php.appender.rendr2 = LoggerAppenderEcho
 log4php.appender.rendr2.layout = LoggerLayoutSimple
-log4php.appender.rendr2.threshold = INFO
+log4php.appender.rendr2.threshold = ERROR
 
 log4php.threshold = WARN
 log4php.rootLogger = WARN, default, rendr2


Reply via email to