1
0
mirror of https://github.com/Seldaek/monolog.git synced 2025-07-29 17:30:14 +02:00
Files
php-monolog/tests/Monolog/Handler/RollbarHandlerTest.php
Jordi Boggiano bd24765917 ElasticSearch v8 support (#1662)
* ElasticSearch v8 support
* CI updates

Co-authored-by: Thomas Müller <mimmi20@live.de>
2022-05-08 22:23:46 +02:00

99 lines
2.5 KiB
PHP

<?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\Handler;
use Exception;
use Monolog\Test\TestCase;
use Monolog\Logger;
use PHPUnit\Framework\MockObject\MockObject;
use Rollbar\RollbarLogger;
/**
* @author Erik Johansson <erik.pm.johansson@gmail.com>
* @see https://rollbar.com/docs/notifier/rollbar-php/
*
* @coversDefaultClass Monolog\Handler\RollbarHandler
*
* @requires function \Rollbar\RollbarLogger::__construct
*/
class RollbarHandlerTest extends TestCase
{
/**
* @var MockObject
*/
private $rollbarLogger;
/**
* @var array
*/
private $reportedExceptionArguments = null;
protected function setUp(): void
{
parent::setUp();
$this->setupRollbarLoggerMock();
}
public function tearDown(): void
{
parent::tearDown();
unset($this->rollbarLogger, $this->reportedExceptionArguments);
}
/**
* When reporting exceptions to Rollbar the
* level has to be set in the payload data
*/
public function testExceptionLogLevel()
{
$handler = $this->createHandler();
$handler->handle($this->createExceptionRecord(Logger::DEBUG));
$this->assertEquals('debug', $this->reportedExceptionArguments['payload']['level']);
}
private function setupRollbarLoggerMock()
{
$config = array(
'access_token' => 'ad865e76e7fb496fab096ac07b1dbabb',
'environment' => 'test',
);
$this->rollbarLogger = $this->getMockBuilder(RollbarLogger::class)
->setConstructorArgs(array($config))
->onlyMethods(array('log'))
->getMock();
$this->rollbarLogger
->expects($this->any())
->method('log')
->willReturnCallback(function ($exception, $context, $payload) {
$this->reportedExceptionArguments = compact('exception', 'context', 'payload');
});
}
private function createHandler(): RollbarHandler
{
return new RollbarHandler($this->rollbarLogger, Logger::DEBUG);
}
private function createExceptionRecord($level = Logger::DEBUG, $message = 'test', $exception = null): array
{
return $this->getRecord($level, $message, [
'exception' => $exception ?: new Exception(),
]);
}
}