Skip to content

Commit 9c1532d

Browse files
authored
Merge pull request #14 from bmitch/tests
Tests for TelegramMessage
2 parents 48302c2 + a2d3299 commit 9c1532d

File tree

1 file changed

+82
-0
lines changed

1 file changed

+82
-0
lines changed

tests/TelegramMessageTest.php

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
<?php
2+
3+
namespace NotificationChannels\Telegram\Test;
4+
5+
use NotificationChannels\Telegram\TelegramMessage;
6+
7+
class TelegramMessageTest extends \PHPUnit_Framework_TestCase
8+
{
9+
/** @test */
10+
public function it_accepts_content_when_constructed()
11+
{
12+
$message = new TelegramMessage('Laravel Notification Channels are awesome!');
13+
$this->assertEquals('Laravel Notification Channels are awesome!', $message->payload['text']);
14+
}
15+
16+
/** @test */
17+
public function the_default_parse_mode_is_markdown()
18+
{
19+
$message = new TelegramMessage();
20+
$this->assertEquals('Markdown', $message->payload['parse_mode']);
21+
}
22+
23+
/** @test */
24+
public function the_recipients_chat_id_can_be_set()
25+
{
26+
$message = new TelegramMessage();
27+
$message->to(12345);
28+
$this->assertEquals(12345, $message->payload['chat_id']);
29+
}
30+
31+
/** @test */
32+
public function the_notification_message_can_be_set()
33+
{
34+
$message = new TelegramMessage();
35+
$message->content('Laravel Notification Channels are awesome!');
36+
$this->assertEquals('Laravel Notification Channels are awesome!', $message->payload['text']);
37+
}
38+
39+
/** @test */
40+
public function an_inline_button_can_be_added_to_the_messsage()
41+
{
42+
$message = new TelegramMessage();
43+
$message->button('Laravel', 'https://laravel.com');
44+
$this->assertEquals('{"inline_keyboard":[[{"text":"Laravel","url":"https:\/\/laravel.com"}]]}', $message->payload['reply_markup']);
45+
}
46+
47+
/** @test */
48+
public function additional_options_can_be_set_for_the_message()
49+
{
50+
$message = new TelegramMessage();
51+
$message->options(['foo' => 'bar']);
52+
$this->assertEquals('bar', $message->payload['foo']);
53+
}
54+
55+
/** @test */
56+
public function it_can_determine_if_the_recipient_chat_id_has_not_been_set()
57+
{
58+
$message = new TelegramMessage();
59+
$this->assertTrue($message->toNotGiven());
60+
61+
$message->to(12345);
62+
$this->assertFalse($message->toNotGiven());
63+
}
64+
65+
/** @test */
66+
public function it_can_return_the_payload_as_an_array()
67+
{
68+
$message = new TelegramMessage('Laravel Notification Channels are awesome!');
69+
$message->to(12345);
70+
$message->options(['foo' => 'bar']);
71+
$message->button('Laravel', 'https://laravel.com');
72+
$expected = [
73+
"text" => "Laravel Notification Channels are awesome!",
74+
"parse_mode" => "Markdown",
75+
"chat_id" => 12345,
76+
"foo" => "bar",
77+
"reply_markup" => '{"inline_keyboard":[[{"text":"Laravel","url":"https:\/\/laravel.com"}]]}',
78+
];
79+
80+
$this->assertEquals($expected, $message->toArray());
81+
}
82+
}

0 commit comments

Comments
 (0)