Author: ihabunek
Date: Sun Jan 29 19:43:22 2012
New Revision: 1237433

URL: http://svn.apache.org/viewvc?rev=1237433&view=rev
Log:
Improved error reporting for mail event appender. Removed thrown exceptions.

Modified:
    logging/log4php/trunk/src/main/php/appenders/LoggerAppenderMailEvent.php
    logging/log4php/trunk/src/test/php/appenders/LoggerAppenderMailEventTest.php

Modified: 
logging/log4php/trunk/src/main/php/appenders/LoggerAppenderMailEvent.php
URL: 
http://svn.apache.org/viewvc/logging/log4php/trunk/src/main/php/appenders/LoggerAppenderMailEvent.php?rev=1237433&r1=1237432&r2=1237433&view=diff
==============================================================================
--- logging/log4php/trunk/src/main/php/appenders/LoggerAppenderMailEvent.php 
(original)
+++ logging/log4php/trunk/src/main/php/appenders/LoggerAppenderMailEvent.php 
Sun Jan 29 19:43:22 2012
@@ -82,16 +82,17 @@ class LoggerAppenderMailEvent extends Lo
        protected $dry = false;
        
        public function activateOptions() {
-               if (empty($this->layout)) {
-                       throw new LoggerException("LoggerAppenderMailEvent 
requires layout!");
-               }
                if (empty($this->to)) {
-                       throw new LoggerException("LoggerAppenderMailEvent was 
initialized with empty 'from' ($this->from) or 'to' ($this->to) Adress!");
+                       $this->warn("Required parameter 'to' not set. Closing 
appender.");
+                       $this->close = true;
+                       return;
                }
                
                $sendmail_from = ini_get('sendmail_from');
                if (empty($this->from) and empty($sendmail_from)) {
-                       throw new LoggerException("LoggerAppenderMailEvent 
requires 'from' or on win32 at least the ini variable sendmail_from!");
+                       $this->warn("Required parameter 'from' not set. Closing 
appender.");
+                       $this->close = true;
+                       return;
                }
                
                $this->closed = false;

Modified: 
logging/log4php/trunk/src/test/php/appenders/LoggerAppenderMailEventTest.php
URL: 
http://svn.apache.org/viewvc/logging/log4php/trunk/src/test/php/appenders/LoggerAppenderMailEventTest.php?rev=1237433&r1=1237432&r2=1237433&view=diff
==============================================================================
--- 
logging/log4php/trunk/src/test/php/appenders/LoggerAppenderMailEventTest.php 
(original)
+++ 
logging/log4php/trunk/src/test/php/appenders/LoggerAppenderMailEventTest.php 
Sun Jan 29 19:43:22 2012
@@ -27,7 +27,7 @@
  * @group appenders
  */
 class LoggerAppenderMailEventTest extends PHPUnit_Framework_TestCase {
-        
+       
        public function testRequiresLayout() {
                $appender = new LoggerAppenderMailEvent();
                self::assertTrue($appender->requiresLayout());
@@ -53,16 +53,29 @@ class LoggerAppenderMailEventTest extend
                $e = "DRY MODE OF MAIL APP.: Send mail to: t...@example.com 
with additional headers 'From: Testsender' and content: ERROR - 
testmessage".PHP_EOL;
                self::assertEquals($e, $v);
                $appender->close();
-    }
+       }
 
-    /** 
-        * Check if invalid configurations are rejected. 
-     * @expectedException LoggerException with empty
-     */
-    public function testEmptyTo() {
-        $appender = new LoggerAppenderMailEvent("myname");
-        $appender->setLayout(new LoggerLayoutSimple());
-        $appender->setFrom('i...@example.com');
-        $appender->activateOptions();
-    }
+       /** 
+        * Check an error is reported if 'to' is not set.
+        * @expectedException PHPUnit_Framework_Error
+        * @expectedExceptionMessage Required parameter 'to' not set.
+        */
+       public function testEmptyTo() {
+               $appender = new LoggerAppenderMailEvent("myname");
+               $appender->setLayout(new LoggerLayoutSimple());
+               $appender->setFrom('i...@example.com');
+               $appender->activateOptions();
+       }
+       
+       /**
+        * Check an error is reported if 'from' is not set.
+        * @expectedException PHPUnit_Framework_Error
+        * @expectedExceptionMessage Required parameter 'from' not set.
+        */
+       public function testEmptyFrom() {
+               $appender = new LoggerAppenderMailEvent("myname");
+               $appender->setLayout(new LoggerLayoutSimple());
+               $appender->setTo('i...@example.com');
+               $appender->activateOptions();
+       }
 }


Reply via email to