summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHaralan Dobrev <hkdobrev@gmail.com>2016-11-19 18:45:03 +0200
committerHaralan Dobrev <hkdobrev@gmail.com>2016-11-19 18:54:46 +0200
commit43e1e69bade020e99ec95663fb264af83095531d (patch)
treef3c9c6ee24f317b4561ffd41126478b8bab1ce5a
parent26b526d9fb5acb7da74299f18e969fa3ea6f7e28 (diff)
downloadmonolog-43e1e69bade020e99ec95663fb264af83095531d.zip
monolog-43e1e69bade020e99ec95663fb264af83095531d.tar.gz
monolog-43e1e69bade020e99ec95663fb264af83095531d.tar.bz2
Add unit tests for SlackWebhookHandler
-rw-r--r--tests/Monolog/Handler/SlackWebhookHandlerTest.php106
1 files changed, 106 insertions, 0 deletions
diff --git a/tests/Monolog/Handler/SlackWebhookHandlerTest.php b/tests/Monolog/Handler/SlackWebhookHandlerTest.php
new file mode 100644
index 0000000..cc9b7ba
--- /dev/null
+++ b/tests/Monolog/Handler/SlackWebhookHandlerTest.php
@@ -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());
+ }
+}