Просмотр исходного кода

Add initial tests for SlackRecord

Haralan Dobrev 9 лет назад
Родитель
Сommit
7c2f58e7aa
1 измененных файлов с 84 добавлено и 0 удалено
  1. 84 0
      tests/Monolog/Handler/Slack/SlackRecordTest.php

+ 84 - 0
tests/Monolog/Handler/Slack/SlackRecordTest.php

@@ -0,0 +1,84 @@
+<?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\Slack;
+
+use Monolog\Logger;
+use Monolog\TestCase;
+
+/**
+ * @coversDefaultClass Monolog\Handler\Slack\SlackRecord
+ */
+class SlackRecordTest extends TestCase
+{
+    public function dataGetAttachmentColor()
+    {
+        return array(
+            array(Logger::DEBUG, SlackRecord::COLOR_DEFAULT),
+            array(Logger::INFO, SlackRecord::COLOR_GOOD),
+            array(Logger::NOTICE, SlackRecord::COLOR_GOOD),
+            array(Logger::WARNING, SlackRecord::COLOR_WARNING),
+            array(Logger::ERROR, SlackRecord::COLOR_DANGER),
+            array(Logger::CRITICAL, SlackRecord::COLOR_DANGER),
+            array(Logger::ALERT, SlackRecord::COLOR_DANGER),
+            array(Logger::EMERGENCY, SlackRecord::COLOR_DANGER),
+        );
+    }
+    /**
+     * @dataProvider dataGetAttachmentColor
+     * @param  int $logLevel
+     * @param  string $expectedColour RGB hex color or name of Slack color
+     * @covers ::getAttachmentColor
+     */
+    public function testGetAttachmentColor($logLevel, $expectedColour)
+    {
+        $slackRecord = new SlackRecord('#test');
+        $this->assertSame(
+            $expectedColour,
+            $slackRecord->getAttachmentColor($logLevel)
+        );
+    }
+
+    public function testStringifyReturnsNullWithNoLineFormatter()
+    {
+        $slackRecord = new SlackRecord('#test');
+        $this->assertNull($slackRecord->stringify(array('foo' => 'bar')));
+    }
+
+    /**
+     * @return array
+     */
+    public function dataStringify()
+    {
+        return array(
+            array(array(), ''),
+            array(array('foo' => 'bar'), 'foo: bar'),
+            array(array('Foo' => 'bAr'), 'Foo: bAr'),
+        );
+    }
+
+    /**
+     * @dataProvider dataStringify
+     */
+    public function testStringifyWithLineFormatter($fields, $expectedResult)
+    {
+        $slackRecord = new SlackRecord(
+            '#test',
+            'test',
+            true,
+            null,
+            true,
+            true
+        );
+
+        $this->assertSame($expectedResult, $slackRecord->stringify($fields));
+    }
+}