Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 6ed20d8

Browse files
dirk39leadspark
authored andcommitted
check throw exception if default bus missing and rewrite error message
1 parent 52da31c commit 6ed20d8

File tree

2 files changed

+24
-11
lines changed

2 files changed

+24
-11
lines changed

src/Symfony/Component/Messenger/RoutableMessageBus.php

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -45,15 +45,12 @@ public function dispatch($envelope, array $stamps = []): Envelope
4545

4646
/** @var BusNameStamp $busNameStamp */
4747
$busNameStamp = $envelope->last(BusNameStamp::class);
48-
$busNameStampName = MessageBusInterface::class;
49-
if (null !== $busNameStamp) {
50-
$busNameStampName = $busNameStamp->getBusName();
51-
}
48+
$busName = null !== $busNameStamp ? $busNameStamp->getBusName() : MessageBusInterface::class;
5249

53-
if (!$this->busLocator->has($busNameStampName)) {
54-
throw new InvalidArgumentException(sprintf('Invalid bus name "%s" on BusNameStamp.', $busNameStampName));
50+
if (!$this->busLocator->has($busName)) {
51+
throw new InvalidArgumentException(sprintf('Bus named "%s" does not exist.', $busName));
5552
}
5653

57-
return $this->busLocator->get($busNameStampName)->dispatch($envelope, $stamps);
54+
return $this->busLocator->get($busName)->dispatch($envelope, $stamps);
5855
}
5956
}

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

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
use PHPUnit\Framework\TestCase;
1515
use Psr\Container\ContainerInterface;
1616
use Symfony\Component\Messenger\Envelope;
17-
use Symfony\Component\Messenger\Exception\InvalidArgumentException;
1817
use Symfony\Component\Messenger\MessageBusInterface;
1918
use Symfony\Component\Messenger\RoutableMessageBus;
2019
use Symfony\Component\Messenger\Stamp\BusNameStamp;
@@ -60,11 +59,28 @@ public function testItRoutesToDefaultBus()
6059
$this->assertSame($envelope, $routableBus->dispatch($envelope, [$stamp]));
6160
}
6261

63-
public function testItExceptionOnBusNotFound()
62+
/**
63+
* @expectedException \Symfony\Component\Messenger\Exception\InvalidArgumentException
64+
* @expectedExceptionMessage Bus named "Symfony\Component\Messenger\MessageBusInterface" does not exist.
65+
*/
66+
public function testItExceptionOnDefaultBusNotFound()
6467
{
65-
$this->expectException(InvalidArgumentException::class);
66-
$this->expectExceptionMessage('Invalid bus name');
68+
$envelope = new Envelope(new \stdClass());
69+
70+
$container = $this->createMock(ContainerInterface::class);
71+
$container->expects($this->once())->method('has')->with(MessageBusInterface::class)
72+
->willReturn(false);
6773

74+
$routableBus = new RoutableMessageBus($container);
75+
$routableBus->dispatch($envelope);
76+
}
77+
78+
/**
79+
* @expectedException \Symfony\Component\Messenger\Exception\InvalidArgumentException
80+
* @expectedExceptionMessage Bus named "foo_bus" does not exist.
81+
*/
82+
public function testItExceptionOnBusNotFound()
83+
{
6884
$envelope = new Envelope(new \stdClass(), [new BusNameStamp('foo_bus')]);
6985

7086
$container = $this->createMock(ContainerInterface::class);

0 commit comments

Comments
 (0)