summaryrefslogtreecommitdiffstats
path: root/src/Monolog/Test/TestCase.php
diff options
context:
space:
mode:
Diffstat (limited to 'src/Monolog/Test/TestCase.php')
-rw-r--r--src/Monolog/Test/TestCase.php66
1 files changed, 66 insertions, 0 deletions
diff --git a/src/Monolog/Test/TestCase.php b/src/Monolog/Test/TestCase.php
new file mode 100644
index 0000000..23cf9ad
--- /dev/null
+++ b/src/Monolog/Test/TestCase.php
@@ -0,0 +1,66 @@
+<?php declare(strict_types=1);
+
+/*
+ * This file is part of the Monolog package.
+ *
+ * (c) Jordi Boggiano <j.boggiano@seld.be>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Monolog\Test;
+
+use Monolog\Logger;
+use Monolog\DateTimeImmutable;
+use Monolog\Formatter\FormatterInterface;
+
+/**
+ * Lets you easily generate log records and a dummy formatter for testing purposes
+ * *
+ * @author Jordi Boggiano <j.boggiano@seld.be>
+ */
+class TestCase extends \PHPUnit\Framework\TestCase
+{
+ /**
+ * @return array Record
+ */
+ protected function getRecord($level = Logger::WARNING, $message = 'test', $context = [])
+ {
+ return [
+ 'message' => $message,
+ 'context' => $context,
+ 'level' => $level,
+ 'level_name' => Logger::getLevelName($level),
+ 'channel' => 'test',
+ 'datetime' => new DateTimeImmutable(true),
+ 'extra' => [],
+ ];
+ }
+
+ /**
+ * @return array
+ */
+ protected function getMultipleRecords()
+ {
+ return [
+ $this->getRecord(Logger::DEBUG, 'debug message 1'),
+ $this->getRecord(Logger::DEBUG, 'debug message 2'),
+ $this->getRecord(Logger::INFO, 'information'),
+ $this->getRecord(Logger::WARNING, 'warning'),
+ $this->getRecord(Logger::ERROR, 'error'),
+ ];
+ }
+
+ protected function getIdentityFormatter(): FormatterInterface
+ {
+ $formatter = $this->createMock(FormatterInterface::class);
+ $formatter->expects($this->any())
+ ->method('format')
+ ->will($this->returnCallback(function ($record) {
+ return $record['message'];
+ }));
+
+ return $formatter;
+ }
+}