소스 검색

Add strpos based TestHandler methods

Richard Tuin 10 년 전
부모
커밋
b63e013827
2개의 변경된 파일57개의 추가작업 그리고 0개의 파일을 삭제
  1. 55 0
      src/Monolog/Handler/TestHandler.php
  2. 2 0
      tests/Monolog/Handler/TestHandlerTest.php

+ 55 - 0
src/Monolog/Handler/TestHandler.php

@@ -129,6 +129,61 @@ class TestHandler extends AbstractProcessingHandler
         return false;
     }
 
+    public function hasEmergencyThatContains($message)
+    {
+        return $this->hasRecordThatContains($message, Logger::EMERGENCY);
+    }
+
+    public function hasAlertThatContains($message)
+    {
+        return $this->hasRecordThatContains($message, Logger::ALERT);
+    }
+
+    public function hasCriticalThatContains($message)
+    {
+        return $this->hasRecordThatContains($message, Logger::CRITICAL);
+    }
+
+    public function hasErrorThatContains($message)
+    {
+        return $this->hasRecordThatContains($message, Logger::ERROR);
+    }
+
+    public function hasWarningThatContains($message)
+    {
+        return $this->hasRecordThatContains($message, Logger::WARNING);
+    }
+
+    public function hasNoticeThatContains($message)
+    {
+        return $this->hasRecordThatContains($message, Logger::NOTICE);
+    }
+
+    public function hasInfoThatContains($message)
+    {
+        return $this->hasRecordThatContains($message, Logger::INFO);
+    }
+
+    public function hasDebugThatContains($message)
+    {
+        return $this->hasRecordThatContains($message, Logger::DEBUG);
+    }
+
+    public function hasRecordThatContains($message, $level)
+    {
+        if (!isset($this->recordsByLevel[$level])) {
+            return false;
+        }
+
+        foreach ($this->recordsByLevel[$level] as $rec) {
+            if (strpos($rec['message'], $message) !== false) {
+                return true;
+            }
+        }
+
+        return false;
+    }
+
     /**
      * {@inheritdoc}
      */

+ 2 - 0
tests/Monolog/Handler/TestHandlerTest.php

@@ -27,12 +27,14 @@ class TestHandlerTest extends TestCase
         $handler = new TestHandler;
         $record = $this->getRecord($level, 'test'.$method);
         $this->assertFalse($handler->{'has'.$method}($record));
+        $this->assertFalse($handler->{'has'.$method.'ThatContains'}('test'));
         $this->assertFalse($handler->{'has'.$method.'Records'}());
         $handler->handle($record);
 
         $this->assertFalse($handler->{'has'.$method}('bar'));
         $this->assertTrue($handler->{'has'.$method}($record));
         $this->assertTrue($handler->{'has'.$method}('test'.$method));
+        $this->assertTrue($handler->{'has'.$method.'ThatContains'}('test'));
         $this->assertTrue($handler->{'has'.$method.'Records'}());
 
         $records = $handler->getRecords();