8000 minor #32338 [Messenger] Added more test for MessageBus (lyrixx) · symfony/symfony@f5a0633 · GitHub
[go: up one dir, main page]

Skip to content

Commit f5a0633

Browse files
committed
minor #32338 [Messenger] Added more test for MessageBus (lyrixx)
This PR was merged into the 4.3 branch. Discussion ---------- [Messenger] Added more test for MessageBus | Q | A | ------------- | --- | Branch? | 4.3 | Bug fix? | no | New feature? | no | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | | License | MIT | Doc PR | [This code](https://github.com/symfony/symfony/blob/bed50fd5421d56090a0073a555748767575d3b49/src/Symfony/Component/Messenger/MessageBus.php#L33-L49) is quite hard to understand. So It must be covered by tests. More over, it will help people to understand how it works Commits ------- 5f4ab23 [Messenger] Added more test for MessageBus
2 parents 09e762e + 5f4ab23 commit f5a0633

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed

src/Symfony/Component/Messenger/Tests/MessageBusTest.php

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
use Symfony\Component\Messenger\MessageBus;
1717
use Symfony\Component\Messenger\MessageBusInterface;
1818
use Symfony\Component\Messenger\Middleware\MiddlewareInterface;
19+
use Symfony\Component\Messenger\Middleware\StackInterface;
1920
use Symfony\Component\Messenger\Stamp\BusNameStamp;
2021
use Symfony\Component\Messenger\Stamp\DelayStamp;
2122
use Symfony\Component\Messenger\Stamp\ReceivedStamp;
@@ -148,4 +149,44 @@ public function testItAddsTheStampsToEnvelope()
148149
$finalEnvelope = (new MessageBus())->dispatch(new Envelope(new \stdClass()), [new DelayStamp(5), new BusNameStam 8000 p('bar')]);
149150
$this->assertCount(2, $finalEnvelope->all());
150151
}
152+
153+
public function provideConstructorDataStucture()
154+
{
155+
yield 'iterator' => [new \ArrayObject([
156+
new SimpleMiddleware(),
157+
new SimpleMiddleware(),
158+
])];
159+
160+
yield 'array' => [[
161+
new SimpleMiddleware(),
162+
new SimpleMiddleware(),
163+
]];
164+
165+
yield 'generator' => [(function (): \Generator {
166+
yield new SimpleMiddleware();
167+
yield new SimpleMiddleware();
168+
})()];
169+
}
170+
171+
/** @dataProvider provideConstructorDataStucture */
172+
public function testConstructDataStructure($dataStructure)
173+
{
174+
$bus = new MessageBus($dataStructure);
175+
$envelope = new Envelope(new DummyMessage('Hello'));
176+
$newEnvelope = $bus->dispatch($envelope);
177+
$this->assertSame($envelope->getMessage(), $newEnvelope->getMessage());
178+
179+
// Test rewindable capacity
180+
$envelope = new Envelope(new DummyMessage('Hello'));
181+
$newEnvelope = $bus->dispatch($envelope);
182+
$this->assertSame($envelope->getMessage(), $newEnvelope->getMessage());
183+
}
184+
}
185+
186+
class SimpleMiddleware implements MiddlewareInterface
187+
{
188+
public function handle(Envelope $envelope, StackInterface $stack): Envelope
189+
{
190+
return $envelope;
191+
}
151192
}

0 commit comments

Comments
 (0)
0