mirror of
https://github.com/Seldaek/monolog.git
synced 2025-08-23 13:23:08 +02:00
Add unit tests for SlackWebhookHandler
This commit is contained in:
106
tests/Monolog/Handler/SlackWebhookHandlerTest.php
Normal file
106
tests/Monolog/Handler/SlackWebhookHandlerTest.php
Normal file
@@ -0,0 +1,106 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* 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 Monolog\TestCase;
|
||||
use Monolog\Logger;
|
||||
use Monolog\Formatter\LineFormatter;
|
||||
use Monolog\Handler\Slack\SlackRecord;
|
||||
|
||||
/**
|
||||
* @author Haralan Dobrev <hkdobrev@gmail.com>
|
||||
* @see https://api.slack.com/incoming-webhooks
|
||||
* @coversDefaultClass Monolog\Handler\SlackWebhookHandler
|
||||
*/
|
||||
class SlackWebhookHandlerTest extends TestCase
|
||||
{
|
||||
const WEBHOOK_URL = 'https://hooks.slack.com/services/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E';
|
||||
|
||||
/**
|
||||
* @covers ::__construct
|
||||
* @covers ::getSlackRecord
|
||||
*/
|
||||
public function testConstructorMinimal()
|
||||
{
|
||||
$handler = new SlackWebhookHandler(self::WEBHOOK_URL);
|
||||
$slackRecord = $handler->getSlackRecord();
|
||||
$this->assertInstanceOf('Monolog\Handler\Slack\SlackRecord', $slackRecord);
|
||||
$this->assertEquals(array(
|
||||
'username' => 'Monolog',
|
||||
'text' => '',
|
||||
'attachments' => array(
|
||||
array(
|
||||
'fallback' => 'test',
|
||||
'text' => 'test',
|
||||
'color' => SlackRecord::COLOR_WARNING,
|
||||
'fields' => array(
|
||||
array(
|
||||
'title' => 'Level',
|
||||
'value' => 'WARNING',
|
||||
'short' => true,
|
||||
),
|
||||
),
|
||||
'title' => 'Message',
|
||||
),
|
||||
),
|
||||
), $slackRecord->getSlackData($this->getRecord()));
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers ::__construct
|
||||
* @covers ::getSlackRecord
|
||||
*/
|
||||
public function testConstructorFull()
|
||||
{
|
||||
$handler = new SlackWebhookHandler(
|
||||
self::WEBHOOK_URL,
|
||||
'test-channel',
|
||||
'test-username',
|
||||
false,
|
||||
':ghost:',
|
||||
false,
|
||||
false,
|
||||
Logger::DEBUG,
|
||||
false
|
||||
);
|
||||
|
||||
$slackRecord = $handler->getSlackRecord();
|
||||
$this->assertInstanceOf('Monolog\Handler\Slack\SlackRecord', $slackRecord);
|
||||
$this->assertEquals(array(
|
||||
'username' => 'test-username',
|
||||
'text' => 'test',
|
||||
'channel' => 'test-channel',
|
||||
'icon_emoji' => ':ghost:',
|
||||
), $slackRecord->getSlackData($this->getRecord()));
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers ::getFormatter
|
||||
*/
|
||||
public function testGetFormatter()
|
||||
{
|
||||
$handler = new SlackWebhookHandler(self::WEBHOOK_URL);
|
||||
$formatter = $handler->getFormatter();
|
||||
$this->assertInstanceOf('Monolog\Formatter\FormatterInterface', $formatter);
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers ::setFormatter
|
||||
*/
|
||||
public function testSetFormatter()
|
||||
{
|
||||
$handler = new SlackWebhookHandler(self::WEBHOOK_URL);
|
||||
$formatter = new LineFormatter();
|
||||
$handler->setFormatter($formatter);
|
||||
$this->assertSame($formatter, $handler->getFormatter());
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user