anonymous//tests/WebhookTest.php$1   A
last analyzed

Complexity

Total Complexity 1

Size/Duplication

Total Lines 3
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 1
c 1
b 0
f 0
dl 0
loc 3
rs 10
1
<?php
2
3
namespace TelegramBotTest;
4
5
use PHPUnit\Framework\Assert;
6
use TelegramBot\Entities\Message;
7
use TelegramBot\Entities\Update;
8
use TelegramBot\Plugin;
9
use TelegramBot\UpdateHandler;
10
11
class WebhookTest extends \PHPUnit\Framework\TestCase {
12
13
    public function testAnonymousPlugins() {
14
        $plugin = new class() extends Plugin {
15
16
            public function onMessage(int $update_id, Message $message): \Generator {
17
                Assert::assertEquals(1, $update_id);
18
                Assert::assertEquals('Hello World!', $message->getText());
19
                yield;
20
            }
21
22
        };
23
24
        $message = DummyUpdate::message();
25
        $message->set('text', 'Hello World!');
26
27
        (new UpdateHandler())->addPlugins($plugin)->resolve(new Update([
28
            'update_id' => 1,
29
            'message' => $message->getRawData(),
30
        ]));
31
    }
32
33
    public function testFilterIncomingUpdates() {
34
35
        $plugin = new class() extends Plugin {
36
            public function __process(Update $update): void {
37
                Assert::fail('This should not be called');
38
            }
39
        };
40
41
        $handler = (new UpdateHandler())->addPlugins($plugin);
42
43
        $handler->filterIncomingUpdates([
44
            Update::TYPE_MESSAGE
45
        ]);
46
47
        $handler->resolve(new Update([
48
            'update_id' => 1,
49
            'message' => DummyUpdate::message()->getRawData(),
50
        ]));
51
52
        $this->assertTrue(true);
53
    }
54
55
}
56