Przeglądaj źródła

Throw an exception on invalid level name

Jordi Boggiano 13 lat temu
rodzic
commit
b23cfd3d6c
2 zmienionych plików z 21 dodań i 0 usunięć
  1. 4 0
      src/Monolog/Logger.php
  2. 17 0
      tests/Monolog/LoggerTest.php

+ 4 - 0
src/Monolog/Logger.php

@@ -322,6 +322,10 @@ class Logger
      */
     public static function getLevelName($level)
     {
+        if (!isset(static::$levels[$level])) {
+            throw new \InvalidArgumentException('Level "'.$level.'" is not defined, use one of: '.implode(', ', array_keys(static::$levels)));
+        }
+
         return static::$levels[$level];
     }
 

+ 17 - 0
tests/Monolog/LoggerTest.php

@@ -25,6 +25,23 @@ class LoggerTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals('foo', $logger->getName());
     }
 
+    /**
+     * @covers Monolog\Logger::getLevelName
+     */
+    public function testGetLevelName()
+    {
+        $this->assertEquals('ERROR', Logger::getLevelName(Logger::ERROR));
+    }
+
+    /**
+     * @covers Monolog\Logger::getLevelName
+     * @expectedException InvalidArgumentException
+     */
+    public function testGetLevelNameThrows()
+    {
+        Logger::getLevelName(5);
+    }
+
     /**
      * @covers Monolog\Logger::__construct
      */