Skip to content

Commit 15d5a26

Browse files
authored
Merge pull request #173 from jakubkulhan/0.6.x-strengthen-channel-consume-test-assertations
[0.6.x] Strengthen channel consume test assertations
2 parents 46e3ab9 + 21a1a49 commit 15d5a26

File tree

1 file changed

+24
-4
lines changed

1 file changed

+24
-4
lines changed

test/ChannelTest.php

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@
1111
use Bunny\Message;
1212
use Bunny\Test\Library\ClientHelper;
1313
use PHPUnit\Framework\TestCase;
14+
use React\Promise\Deferred;
1415
use WyriHaximus\React\PHPUnit\RunTestsInFibersTrait;
16+
use function React\Async\await;
1517
use function str_repeat;
1618

1719
class ChannelTest extends TestCase
@@ -92,34 +94,46 @@ public function testPublish(): void
9294

9395
public function testConsume(): void
9496
{
97+
/**
98+
* @var Deferred<string> $deferred
99+
*/
100+
$deferred = new Deferred();
95101
$c = $this->helper->createClient();
96102

97103
$ch = $c->connect()->channel();
98104
self::assertTrue($c->isConnected());
99105
$ch->queueDeclare('test_queue', false, false, false, true);
100106
self::assertTrue($c->isConnected());
101-
$ch->consume(static function (Message $msg, Channel $ch, Client $c): void {
102-
self::assertEquals('hi', $msg->content);
107+
$ch->consume(static function (Message $msg, Channel $ch, Client $c) use ($deferred): void {
108+
$deferred->resolve($msg->content);
103109
});
104110
self::assertTrue($c->isConnected());
105111
$ch->publish('hi', [], '', 'test_queue');
112+
self::assertEquals('hi', await($deferred->promise()));
113+
106114
self::assertTrue($c->isConnected());
107115
$c->disconnect();
108116
self::assertFalse($c->isConnected());
109117
}
110118

111119
public function testHeaders(): void
112120
{
121+
/**
122+
* @var Deferred<bool> $deferred
123+
*/
124+
$deferred = new Deferred();
113125
$c = $this->helper->createClient();
114126

115127
$ch = $c->connect()->channel();
116128
$ch->queueDeclare('test_queue', false, false, false, true);
117-
$ch->consume(static function (Message $msg, Channel $ch, Client $c): void {
129+
$ch->consume(static function (Message $msg, Channel $ch, Client $c) use ($deferred): void {
118130
self::assertTrue($msg->hasHeader('content-type'));
119131
self::assertEquals('text/html', $msg->getHeader('content-type'));
120132
self::assertEquals('<b>hi html</b>', $msg->content);
133+
$deferred->resolve(true);
121134
});
122135
$ch->publish('<b>hi html</b>', ['content-type' => 'text/html'], '', 'test_queue');
136+
self::assertTrue(await($deferred->promise()));
123137

124138
self::assertTrue($c->isConnected());
125139
$c->disconnect();
@@ -128,16 +142,22 @@ public function testHeaders(): void
128142

129143
public function testBigMessage(): void
130144
{
145+
/**
146+
* @var Deferred<bool> $deferred
147+
*/
148+
$deferred = new Deferred();
131149
$body = str_repeat('a', 10 << 20 /* 10 MiB */);
132150

133151
$c = $this->helper->createClient();
134152

135153
$ch = $c->connect()->channel();
136154
$ch->queueDeclare('test_queue', false, false, false, true);
137-
$ch->consume(static function (Message $msg, Channel $ch, Client $c) use ($body): void {
155+
$ch->consume(static function (Message $msg, Channel $ch, Client $c) use ($body, $deferred): void {
138156
self::assertEquals($body, $msg->content);
157+
$deferred->resolve(true);
139158
});
140159
$ch->publish($body, [], '', 'test_queue');
160+
self::assertTrue(await($deferred->promise()));
141161

142162
self::assertTrue($c->isConnected());
143163
$c->disconnect();

0 commit comments

Comments
 (0)