From ae46a436e790a2c510803ad843db66f38e778768 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Thu, 18 Oct 2018 14:51:08 +0200 Subject: [PATCH] [Messenger] make Envelope first class citizen for middleware handlers --- .../DoctrineTransactionMiddleware.php | 8 ++- .../Middleware/SendMessageMiddleware.php | 7 +-- src/Symfony/Component/Messenger/CHANGELOG.md | 2 + src/Symfony/Component/Messenger/Envelope.php | 30 ---------- .../Messenger/EnvelopeAwareInterface.php | 21 ------- .../Component/Messenger/MessageBus.php | 23 ++------ .../Middleware/AllowNoHandlerMiddleware.php | 8 ++- .../ActivationMiddlewareDecorator.php | 9 ++- .../Enhancers/TraceableMiddleware.php | 11 ++-- .../Middleware/HandleMessageMiddleware.php | 6 +- .../Middleware/LoggingMiddleware.php | 6 +- .../Middleware/MiddlewareInterface.php | 14 ++++- .../Middleware/ValidationMiddleware.php | 7 +-- .../Middleware/SendMessageMiddlewareTest.php | 16 ++--- .../DependencyInjection/MessengerPassTest.php | 4 +- .../Messenger/Tests/EnvelopeTest.php | 15 +---- .../Messenger/Tests/MessageBusTest.php | 59 +++++-------------- .../AllowNoHandlerMiddlewareTest.php | 10 ++-- .../ActivationMiddlewareDecoratorTest.php | 27 ++------- .../Enhancers/TraceableMiddlewareTest.php | 18 +++--- .../HandleMessageMiddlewareTest.php | 6 +- .../Middleware/LoggingMiddlewareTest.php | 11 ++-- .../Middleware/ValidationMiddlewareTest.php | 7 ++- .../Tests/TraceableMessageBusTest.php | 3 +- .../AmqpExt/AmqpExtIntegrationTest.php | 6 +- .../Transport/AmqpExt/AmqpSenderTest.php | 2 +- .../Transport/AmqpExt/AmqpTransportTest.php | 2 +- ...pWhenMemoryUsageIsExceededReceiverTest.php | 4 +- ...WhenMessageCountIsExceededReceiverTest.php | 8 +-- .../Serialization/SerializerTest.php | 10 ++-- .../Component/Messenger/Tests/WorkerTest.php | 12 ++-- 31 files changed, 140 insertions(+), 232 deletions(-) delete mode 100644 src/Symfony/Component/Messenger/EnvelopeAwareInterface.php diff --git a/src/Symfony/Bridge/Doctrine/Messenger/DoctrineTransactionMiddleware.php b/src/Symfony/Bridge/Doctrine/Messenger/DoctrineTransactionMiddleware.php index b6882e41e2d70..b6de4132d045a 100644 --- a/src/Symfony/Bridge/Doctrine/Messenger/DoctrineTransactionMiddleware.php +++ b/src/Symfony/Bridge/Doctrine/Messenger/DoctrineTransactionMiddleware.php @@ -13,6 +13,7 @@ use Doctrine\Common\Persistence\ManagerRegistry; use Doctrine\ORM\EntityManagerInterface; +use Symfony\Component\Messenger\Envelope; use Symfony\Component\Messenger\Middleware\MiddlewareInterface; /** @@ -31,7 +32,10 @@ public function __construct(ManagerRegistry $managerRegistry, ?string $entityMan $this->entityManagerName = $entityManagerName; } - public function handle($message, callable $next): void + /** + * {@inheritdoc} + */ + public function handle(Envelope $envelope, callable $next): void { $entityManager = $this->managerRegistry->getManager($this->entityManagerName); @@ -41,7 +45,7 @@ public function handle($message, callable $next): void $entityManager->getConnection()->beginTransaction(); try { - $next($message); + $next($envelope); $entityManager->flush(); $entityManager->getConnection()->commit(); } catch (\Throwable $exception) { diff --git a/src/Symfony/Component/Messenger/Asynchronous/Middleware/SendMessageMiddleware.php b/src/Symfony/Component/Messenger/Asynchronous/Middleware/SendMessageMiddleware.php index 072d83c8dd0b1..6e342b00d2dba 100644 --- a/src/Symfony/Component/Messenger/Asynchronous/Middleware/SendMessageMiddleware.php +++ b/src/Symfony/Component/Messenger/Asynchronous/Middleware/SendMessageMiddleware.php @@ -14,7 +14,6 @@ use Symfony\Component\Messenger\Asynchronous\Routing\AbstractSenderLocator; use Symfony\Component\Messenger\Asynchronous\Routing\SenderLocatorInterface; use Symfony\Component\Messenger\Envelope; -use Symfony\Component\Messenger\EnvelopeAwareInterface; use Symfony\Component\Messenger\Middleware\MiddlewareInterface; use Symfony\Component\Messenger\Stamp\ReceivedStamp; @@ -22,7 +21,7 @@ * @author Samuel Roze * @author Tobias Schultze */ -class SendMessageMiddleware implements MiddlewareInterface, EnvelopeAwareInterface +class SendMessageMiddleware implements MiddlewareInterface { private $senderLocator; private $messagesToSendAndHandleMapping; @@ -34,11 +33,9 @@ public function __construct(SenderLocatorInterface $senderLocator, array $messag } /** - * @param Envelope $envelope - * * {@inheritdoc} */ - public function handle($envelope, callable $next): void + public function handle(Envelope $envelope, callable $next): void { if ($envelope->get(ReceivedStamp::class)) { // It's a received message. Do not send it back: diff --git a/src/Symfony/Component/Messenger/CHANGELOG.md b/src/Symfony/Component/Messenger/CHANGELOG.md index 058473bf6afe4..9444d4166f4a2 100644 --- a/src/Symfony/Component/Messenger/CHANGELOG.md +++ b/src/Symfony/Component/Messenger/CHANGELOG.md @@ -7,6 +7,8 @@ CHANGELOG * The component is not experimental anymore * All the changes below are BC BREAKS * `MessageBusInterface::dispatch()` and `MiddlewareInterface::handle()` now return `void` + * `MiddlewareInterface::handle()` now require an `Envelope` as first argument + * `EnvelopeAwareInterface` has been removed * The signature of `Amqp*` classes changed to take a `Connection` as a first argument and an optional `Serializer` as a second argument. * `SenderLocator` has been renamed to `ContainerSenderLocator` diff --git a/src/Symfony/Component/Messenger/Envelope.php b/src/Symfony/Component/Messenger/Envelope.php index c0f6141774145..9026b6b7f98fd 100644 --- a/src/Symfony/Component/Messenger/Envelope.php +++ b/src/Symfony/Component/Messenger/Envelope.php @@ -35,16 +35,6 @@ public function __construct($message, StampInterface ...$stamps) } } - /** - * Wrap a message into an envelope if not already wrapped. - * - * @param Envelope|object $message - */ - public static function wrap($message): self - { - return $message instanceof self ? $message : new self($message); - } - /** * @return Envelope a new Envelope instance with additional stamp */ @@ -59,15 +49,6 @@ public function with(StampInterface ...$stamps): self return $cloned; } - public function withMessage($message): self - { - $cloned = clone $this; - - $cloned->message = $message; - - return $cloned; - } - public function get(string $stampFqcn): ?StampInterface { return $this->stamps[$stampFqcn] ?? null; @@ -88,15 +69,4 @@ public function getMessage() { return $this->message; } - - /** - * @param object $target - * - * @return Envelope|object The original message or the envelope if the target supports it - * (i.e implements {@link EnvelopeAwareInterface}). - */ - public function getMessageFor($target) - { - return $target instanceof EnvelopeAwareInterface ? $this : $this->message; - } } diff --git a/src/Symfony/Component/Messenger/EnvelopeAwareInterface.php b/src/Symfony/Component/Messenger/EnvelopeAwareInterface.php deleted file mode 100644 index bca44385bdc45..0000000000000 --- a/src/Symfony/Component/Messenger/EnvelopeAwareInterface.php +++ /dev/null @@ -1,21 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Messenger; - -/** - * A Messenger protagonist aware of the message envelope and its content. - * - * @author Maxime Steinhausser - */ -interface EnvelopeAwareInterface -{ -} diff --git a/src/Symfony/Component/Messenger/MessageBus.php b/src/Symfony/Component/Messenger/MessageBus.php index 0fc7075904465..ecaa0623fe0b7 100644 --- a/src/Symfony/Component/Messenger/MessageBus.php +++ b/src/Symfony/Component/Messenger/MessageBus.php @@ -44,34 +44,21 @@ public function dispatch($message): void throw new InvalidArgumentException(sprintf('Invalid type for message argument. Expected object, but got "%s".', \gettype($message))); } - \call_user_func($this->callableForNextMiddleware(0, Envelope::wrap($message)), $message); + $this->callableForNextMiddleware(0)($message instanceof Envelope ? $message : new Envelope($message)); } - private function callableForNextMiddleware(int $index, Envelope $currentEnvelope): callable + private function callableForNextMiddleware(int $index): callable { if (null === $this->indexedMiddlewareHandlers) { $this->indexedMiddlewareHandlers = \is_array($this->middlewareHandlers) ? array_values($this->middlewareHandlers) : iterator_to_array($this->middlewareHandlers, false); } if (!isset($this->indexedMiddlewareHandlers[$index])) { - return function () {}; + return static function () {}; } - $middleware = $this->indexedMiddlewareHandlers[$index]; - - return function ($message) use ($middleware, $index, $currentEnvelope) { - if ($message instanceof Envelope) { - $currentEnvelope = $message; - } else { - $message = $currentEnvelope->withMessage($message); - } - - if (!$middleware instanceof EnvelopeAwareInterface) { - // Do not provide the envelope if the middleware cannot read it: - $message = $message->getMessage(); - } - - $middleware->handle($message, $this->callableForNextMiddleware($index + 1, $currentEnvelope)); + return function (Envelope $envelope) use ($index) { + $this->indexedMiddlewareHandlers[$index]->handle($envelope, $this->callableForNextMiddleware($index + 1)); }; } } diff --git a/src/Symfony/Component/Messenger/Middleware/AllowNoHandlerMiddleware.php b/src/Symfony/Component/Messenger/Middleware/AllowNoHandlerMiddleware.php index a419f1d93a845..4f46ff599d9d4 100644 --- a/src/Symfony/Component/Messenger/Middleware/AllowNoHandlerMiddleware.php +++ b/src/Symfony/Component/Messenger/Middleware/AllowNoHandlerMiddleware.php @@ -11,6 +11,7 @@ namespace Symfony\Component\Messenger\Middleware; +use Symfony\Component\Messenger\Envelope; use Symfony\Component\Messenger\Exception\NoHandlerForMessageException; /** @@ -18,10 +19,13 @@ */ class AllowNoHandlerMiddleware implements MiddlewareInterface { - public function handle($message, callable $next): void + /** + * {@inheritdoc} + */ + public function handle(Envelope $envelope, callable $next): void { try { - $next($message); + $next($envelope); } catch (NoHandlerForMessageException $e) { // We allow not having a handler for this message. } diff --git a/src/Symfony/Component/Messenger/Middleware/Enhancers/ActivationMiddlewareDecorator.php b/src/Symfony/Component/Messenger/Middleware/Enhancers/ActivationMiddlewareDecorator.php index 97b16ae67f2d0..683f3e57616f7 100644 --- a/src/Symfony/Component/Messenger/Middleware/Enhancers/ActivationMiddlewareDecorator.php +++ b/src/Symfony/Component/Messenger/Middleware/Enhancers/ActivationMiddlewareDecorator.php @@ -12,7 +12,6 @@ namespace Symfony\Component\Messenger\Middleware\Enhancers; use Symfony\Component\Messenger\Envelope; -use Symfony\Component\Messenger\EnvelopeAwareInterface; use Symfony\Component\Messenger\Middleware\MiddlewareInterface; /** @@ -20,7 +19,7 @@ * * @author Maxime Steinhausser */ -class ActivationMiddlewareDecorator implements MiddlewareInterface, EnvelopeAwareInterface +class ActivationMiddlewareDecorator implements MiddlewareInterface { private $inner; private $activated; @@ -35,12 +34,12 @@ public function __construct(MiddlewareInterface $inner, $activated) } /** - * @param Envelope $envelope + * {@inheritdoc} */ - public function handle($envelope, callable $next): void + public function handle(Envelope $envelope, callable $next): void { if (\is_callable($this->activated) ? ($this->activated)($envelope) : $this->activated) { - $this->inner->handle($envelope->getMessageFor($this->inner), $next); + $this->inner->handle($envelope, $next); } else { $next($envelope); } diff --git a/src/Symfony/Component/Messenger/Middleware/Enhancers/TraceableMiddleware.php b/src/Symfony/Component/Messenger/Middleware/Enhancers/TraceableMiddleware.php index eaac35897b7cc..9d4ea255ef792 100644 --- a/src/Symfony/Component/Messenger/Middleware/Enhancers/TraceableMiddleware.php +++ b/src/Symfony/Component/Messenger/Middleware/Enhancers/TraceableMiddleware.php @@ -12,7 +12,6 @@ namespace Symfony\Component\Messenger\Middleware\Enhancers; use Symfony\Component\Messenger\Envelope; -use Symfony\Component\Messenger\EnvelopeAwareInterface; use Symfony\Component\Messenger\Middleware\MiddlewareInterface; use Symfony\Component\Stopwatch\Stopwatch; @@ -21,7 +20,7 @@ * * @author Maxime Steinhausser */ -class TraceableMiddleware implements MiddlewareInterface, EnvelopeAwareInterface +class TraceableMiddleware implements MiddlewareInterface { private $inner; private $stopwatch; @@ -37,9 +36,9 @@ public function __construct(MiddlewareInterface $inner, Stopwatch $stopwatch, st } /** - * @param Envelope $envelope + * {@inheritdoc} */ - public function handle($envelope, callable $next): void + public function handle(Envelope $envelope, callable $next): void { $class = \get_class($this->inner); $eventName = 'c' === $class[0] && 0 === strpos($class, "class@anonymous\0") ? get_parent_class($class).'@anonymous' : $class; @@ -51,9 +50,9 @@ public function handle($envelope, callable $next): void $this->stopwatch->start($eventName, $this->eventCategory); try { - $this->inner->handle($envelope->getMessageFor($this->inner), function ($message) use ($next, $eventName) { + $this->inner->handle($envelope, function (Envelope $envelope) use ($next, $eventName) { $this->stopwatch->stop($eventName); - $next($message); + $next($envelope); $this->stopwatch->start($eventName, $this->eventCategory); }); } finally { diff --git a/src/Symfony/Component/Messenger/Middleware/HandleMessageMiddleware.php b/src/Symfony/Component/Messenger/Middleware/HandleMessageMiddleware.php index 7f47c2891b1ad..a73d37e863dc1 100644 --- a/src/Symfony/Component/Messenger/Middleware/HandleMessageMiddleware.php +++ b/src/Symfony/Component/Messenger/Middleware/HandleMessageMiddleware.php @@ -11,6 +11,7 @@ namespace Symfony\Component\Messenger\Middleware; +use Symfony\Component\Messenger\Envelope; use Symfony\Component\Messenger\Handler\Locator\HandlerLocatorInterface; /** @@ -28,11 +29,12 @@ public function __construct(HandlerLocatorInterface $messageHandlerResolver) /** * {@inheritdoc} */ - public function handle($message, callable $next): void + public function handle(Envelope $envelope, callable $next): void { + $message = $envelope->getMessage(); $handler = $this->messageHandlerResolver->resolve($message); $handler($message); - $next($message); + $next($envelope); } } diff --git a/src/Symfony/Component/Messenger/Middleware/LoggingMiddleware.php b/src/Symfony/Component/Messenger/Middleware/LoggingMiddleware.php index d42f671c86e13..25cfe43b3807c 100644 --- a/src/Symfony/Component/Messenger/Middleware/LoggingMiddleware.php +++ b/src/Symfony/Component/Messenger/Middleware/LoggingMiddleware.php @@ -12,6 +12,7 @@ namespace Symfony\Component\Messenger\Middleware; use Psr\Log\LoggerInterface; +use Symfony\Component\Messenger\Envelope; /** * @author Samuel Roze @@ -28,12 +29,13 @@ public function __construct(LoggerInterface $logger) /** * {@inheritdoc} */ - public function handle($message, callable $next): void + public function handle(Envelope $envelope, callable $next): void { + $message = $envelope->getMessage(); $this->logger->debug('Starting handling message {class}', $this->createContext($message)); try { - $next($message); + $next($envelope); } catch (\Throwable $e) { $this->logger->warning('An exception occurred while handling message {class}', array_merge( $this->createContext($message), diff --git a/src/Symfony/Component/Messenger/Middleware/MiddlewareInterface.php b/src/Symfony/Component/Messenger/Middleware/MiddlewareInterface.php index c01a604817d8f..def80def13792 100644 --- a/src/Symfony/Component/Messenger/Middleware/MiddlewareInterface.php +++ b/src/Symfony/Component/Messenger/Middleware/MiddlewareInterface.php @@ -11,13 +11,23 @@ namespace Symfony\Component\Messenger\Middleware; +use Symfony\Component\Messenger\Envelope; + /** * @author Samuel Roze */ interface MiddlewareInterface { /** - * @param object $message + * @param callable|NextInterface $next */ - public function handle($message, callable $next): void; + public function handle(Envelope $envelope, callable $next): void; +} + +/** + * @internal + */ +interface NextInterface +{ + public function __invoke(Envelope $envelope): void; } diff --git a/src/Symfony/Component/Messenger/Middleware/ValidationMiddleware.php b/src/Symfony/Component/Messenger/Middleware/ValidationMiddleware.php index d003fd5a7bcf3..cfc70c9216478 100644 --- a/src/Symfony/Component/Messenger/Middleware/ValidationMiddleware.php +++ b/src/Symfony/Component/Messenger/Middleware/ValidationMiddleware.php @@ -12,7 +12,6 @@ namespace Symfony\Component\Messenger\Middleware; use Symfony\Component\Messenger\Envelope; -use Symfony\Component\Messenger\EnvelopeAwareInterface; use Symfony\Component\Messenger\Exception\ValidationFailedException; use Symfony\Component\Messenger\Stamp\ValidationStamp; use Symfony\Component\Validator\Validator\ValidatorInterface; @@ -20,7 +19,7 @@ /** * @author Tobias Nyholm */ -class ValidationMiddleware implements MiddlewareInterface, EnvelopeAwareInterface +class ValidationMiddleware implements MiddlewareInterface { private $validator; @@ -30,9 +29,9 @@ public function __construct(ValidatorInterface $validator) } /** - * @param Envelope $envelope + * {@inheritdoc} */ - public function handle($envelope, callable $next): void + public function handle(Envelope $envelope, callable $next): void { $message = $envelope->getMessage(); $groups = null; diff --git a/src/Symfony/Component/Messenger/Tests/Asynchronous/Middleware/SendMessageMiddlewareTest.php b/src/Symfony/Component/Messenger/Tests/Asynchronous/Middleware/SendMessageMiddlewareTest.php index 57ea2a7e4e932..e45d227f271fa 100644 --- a/src/Symfony/Component/Messenger/Tests/Asynchronous/Middleware/SendMessageMiddlewareTest.php +++ b/src/Symfony/Component/Messenger/Tests/Asynchronous/Middleware/SendMessageMiddlewareTest.php @@ -26,7 +26,7 @@ class SendMessageMiddlewareTest extends TestCase public function testItSendsTheMessageToAssignedSender() { $message = new DummyMessage('Hey'); - $envelope = Envelope::wrap($message); + $envelope = new Envelope($message); $sender = $this->getMockBuilder(SenderInterface::class)->getMock(); $next = $this->createPartialMock(\stdClass::class, array('__invoke')); @@ -40,7 +40,7 @@ public function testItSendsTheMessageToAssignedSender() public function testItSendsTheMessageToAssignedSenderWithPreWrappedMessage() { - $envelope = Envelope::wrap(new DummyMessage('Hey')); + $envelope = new Envelope(new DummyMessage('Hey')); $sender = $this->getMockBuilder(SenderInterface::class)->getMock(); $next = $this->createPartialMock(\stdClass::class, array('__invoke')); @@ -55,7 +55,7 @@ public function testItSendsTheMessageToAssignedSenderWithPreWrappedMessage() public function testItAlsoCallsTheNextMiddlewareBasedOnTheMessageClass() { $message = new DummyMessage('Hey'); - $envelope = Envelope::wrap($message); + $envelope = new Envelope($message); $sender = $this->getMockBuilder(SenderInterface::class)->getMock(); $next = $this->createPartialMock(\stdClass::class, array('__invoke')); @@ -72,7 +72,7 @@ public function testItAlsoCallsTheNextMiddlewareBasedOnTheMessageClass() public function testItAlsoCallsTheNextMiddlewareBasedOnTheMessageParentClass() { $message = new ChildDummyMessage('Hey'); - $envelope = Envelope::wrap($message); + $envelope = new Envelope($message); $sender = $this->getMockBuilder(SenderInterface::class)->getMock(); $next = $this->createPartialMock(\stdClass::class, array('__invoke')); @@ -89,7 +89,7 @@ public function testItAlsoCallsTheNextMiddlewareBasedOnTheMessageParentClass() public function testItAlsoCallsTheNextMiddlewareBasedOnTheMessageInterface() { $message = new DummyMessage('Hey'); - $envelope = Envelope::wrap($message); + $envelope = new Envelope($message); $sender = $this->getMockBuilder(SenderInterface::class)->getMock(); $next = $this->createPartialMock(\stdClass::class, array('__invoke')); @@ -106,7 +106,7 @@ public function testItAlsoCallsTheNextMiddlewareBasedOnTheMessageInterface() public function testItAlsoCallsTheNextMiddlewareBasedOnWildcard() { $message = new DummyMessage('Hey'); - $envelope = Envelope::wrap($message); + $envelope = new Envelope($message); $sender = $this->getMockBuilder(SenderInterface::class)->getMock(); $next = $this->createPartialMock(\stdClass::class, array('__invoke')); @@ -123,7 +123,7 @@ public function testItAlsoCallsTheNextMiddlewareBasedOnWildcard() public function testItCallsTheNextMiddlewareWhenNoSenderForThisMessage() { $message = new DummyMessage('Hey'); - $envelope = Envelope::wrap($message); + $envelope = new Envelope($message); $next = $this->createPartialMock(\stdClass::class, array('__invoke')); $middleware = new SendMessageMiddleware(new InMemorySenderLocator(null)); @@ -135,7 +135,7 @@ public function testItCallsTheNextMiddlewareWhenNoSenderForThisMessage() public function testItSkipsReceivedMessages() { - $envelope = Envelope::wrap(new DummyMessage('Hey'))->with(new ReceivedStamp()); + $envelope = (new Envelope(new DummyMessage('Hey')))->with(new ReceivedStamp()); $sender = $this->getMockBuilder(SenderInterface::class)->getMock(); $next = $this->createPartialMock(\stdClass::class, array('__invoke')); diff --git a/src/Symfony/Component/Messenger/Tests/DependencyInjection/MessengerPassTest.php b/src/Symfony/Component/Messenger/Tests/DependencyInjection/MessengerPassTest.php index f969b4be43617..85db4cb195206 100644 --- a/src/Symfony/Component/Messenger/Tests/DependencyInjection/MessengerPassTest.php +++ b/src/Symfony/Component/Messenger/Tests/DependencyInjection/MessengerPassTest.php @@ -670,7 +670,7 @@ class DummyReceiver implements ReceiverInterface public function receive(callable $handler): void { for ($i = 0; $i < 3; ++$i) { - $handler(Envelope::wrap(new DummyMessage("Dummy $i"))); + $handler(new Envelope(new DummyMessage("Dummy $i"))); } } @@ -852,7 +852,7 @@ public function dummyMethodForSomeBus() class UselessMiddleware implements MiddlewareInterface { - public function handle($message, callable $next): void + public function handle(Envelope $message, callable $next): void { $next($message); } diff --git a/src/Symfony/Component/Messenger/Tests/EnvelopeTest.php b/src/Symfony/Component/Messenger/Tests/EnvelopeTest.php index ed7255ef9863e..bb29239f528cc 100644 --- a/src/Symfony/Component/Messenger/Tests/EnvelopeTest.php +++ b/src/Symfony/Component/Messenger/Tests/EnvelopeTest.php @@ -32,20 +32,9 @@ public function testConstruct() $this->assertSame($receivedStamp, $stamps[ReceivedStamp::class]); } - public function testWrap() - { - $first = Envelope::wrap($dummy = new DummyMessage('dummy')); - - $this->assertInstanceOf(Envelope::class, $first); - $this->assertSame($dummy, $first->getMessage()); - - $envelope = Envelope::wrap($first); - $this->assertSame($first, $envelope); - } - public function testWithReturnsNewInstance() { - $envelope = Envelope::wrap($dummy = new DummyMessage('dummy')); + $envelope = new Envelope($dummy = new DummyMessage('dummy')); $this->assertNotSame($envelope, $envelope->with(new ReceivedStamp())); } @@ -61,7 +50,7 @@ public function testGet() public function testAll() { - $envelope = Envelope::wrap($dummy = new DummyMessage('dummy')) + $envelope = (new Envelope($dummy = new DummyMessage('dummy'))) ->with($receivedStamp = new ReceivedStamp()) ->with($validationStamp = new ValidationStamp(array('foo'))) ; diff --git a/src/Symfony/Component/Messenger/Tests/MessageBusTest.php b/src/Symfony/Component/Messenger/Tests/MessageBusTest.php index 0f8e8a5b0121c..0ea4c644ce66d 100644 --- a/src/Symfony/Component/Messenger/Tests/MessageBusTest.php +++ b/src/Symfony/Component/Messenger/Tests/MessageBusTest.php @@ -13,7 +13,6 @@ use PHPUnit\Framework\TestCase; use Symfony\Component\Messenger\Envelope; -use Symfony\Component\Messenger\EnvelopeAwareInterface; use Symfony\Component\Messenger\MessageBus; use Symfony\Component\Messenger\MessageBusInterface; use Symfony\Component\Messenger\Middleware\MiddlewareInterface; @@ -42,44 +41,18 @@ public function testItDispatchInvalidMessageType() public function testItCallsMiddleware() { $message = new DummyMessage('Hello'); + $envelope = new Envelope($message); $responseFromDepthMiddleware = 1234; $firstMiddleware = $this->getMockBuilder(MiddlewareInterface::class)->getMock(); $firstMiddleware->expects($this->once()) ->method('handle') - ->with($message, $this->anything()) - ->will($this->returnCallback(function ($message, $next) { - $next($message); + ->with($envelope, $this->anything()) + ->will($this->returnCallback(function ($envelope, $next) { + $next($envelope); })); $secondMiddleware = $this->getMockBuilder(MiddlewareInterface::class)->getMock(); - $secondMiddleware->expects($this->once()) - ->method('handle') - ->with($message, $this->anything()) - ; - - $bus = new MessageBus(array( - $firstMiddleware, - $secondMiddleware, - )); - - $bus->dispatch($message); - } - - public function testItKeepsTheEnvelopeEvenThroughAMiddlewareThatIsNotEnvelopeAware() - { - $message = new DummyMessage('Hello'); - $envelope = new Envelope($message, new ReceivedStamp()); - - $firstMiddleware = $this->getMockBuilder(MiddlewareInterface::class)->getMock(); - $firstMiddleware->expects($this->once()) - ->method('handle') - ->with($message, $this->anything()) - ->will($this->returnCallback(function ($message, $next) { - $next($message); - })); - - $secondMiddleware = $this->getMockBuilder(array(MiddlewareInterface::class, EnvelopeAwareInterface::class))->getMock(); $secondMiddleware->expects($this->once()) ->method('handle') ->with($envelope, $this->anything()) @@ -90,7 +63,7 @@ public function testItKeepsTheEnvelopeEvenThroughAMiddlewareThatIsNotEnvelopeAwa $secondMiddleware, )); - $bus->dispatch($envelope); + $bus->dispatch($message); } public function testThatAMiddlewareCanAddSomeStampsToTheEnvelope() @@ -99,23 +72,23 @@ public function testThatAMiddlewareCanAddSomeStampsToTheEnvelope() $envelope = new Envelope($message, new ReceivedStamp()); $envelopeWithAnotherStamp = $envelope->with(new AnEnvelopeStamp()); - $firstMiddleware = $this->getMockBuilder(array(MiddlewareInterface::class, EnvelopeAwareInterface::class))->getMock(); + $firstMiddleware = $this->getMockBuilder(MiddlewareInterface::class)->getMock(); $firstMiddleware->expects($this->once()) ->method('handle') ->with($envelope, $this->anything()) - ->will($this->returnCallback(function ($message, $next) { - $next($message->with(new AnEnvelopeStamp())); + ->will($this->returnCallback(function ($envelope, $next) { + $next($envelope->with(new AnEnvelopeStamp())); })); $secondMiddleware = $this->getMockBuilder(MiddlewareInterface::class)->getMock(); $secondMiddleware->expects($this->once()) ->method('handle') - ->with($message, $this->anything()) - ->will($this->returnCallback(function ($message, $next) { - $next($message); + ->with($envelopeWithAnotherStamp, $this->anything()) + ->will($this->returnCallback(function ($envelope, $next) { + $next($envelope); })); - $thirdMiddleware = $this->getMockBuilder(array(MiddlewareInterface::class, EnvelopeAwareInterface::class))->getMock(); + $thirdMiddleware = $this->getMockBuilder(MiddlewareInterface::class)->getMock(); $thirdMiddleware->expects($this->once()) ->method('handle') ->with($envelopeWithAnotherStamp, $this->anything()) @@ -141,12 +114,12 @@ public function testThatAMiddlewareCanUpdateTheMessageWhileKeepingTheEnvelopeSta $firstMiddleware = $this->getMockBuilder(MiddlewareInterface::class)->getMock(); $firstMiddleware->expects($this->once()) ->method('handle') - ->with($message, $this->anything()) - ->will($this->returnCallback(function ($message, $next) use ($changedMessage) { - $next($changedMessage); + ->with($envelope, $this->anything()) + ->will($this->returnCallback(function ($message, $next) use ($expectedEnvelope) { + $next($expectedEnvelope); })); - $secondMiddleware = $this->getMockBuilder(array(MiddlewareInterface::class, EnvelopeAwareInterface::class))->getMock(); + $secondMiddleware = $this->getMockBuilder(MiddlewareInterface::class)->getMock(); $secondMiddleware->expects($this->once()) ->method('handle') ->with($expectedEnvelope, $this->anything()) diff --git a/src/Symfony/Component/Messenger/Tests/Middleware/AllowNoHandlerMiddlewareTest.php b/src/Symfony/Component/Messenger/Tests/Middleware/AllowNoHandlerMiddlewareTest.php index efbefb9586a3f..c298ad9adccc4 100644 --- a/src/Symfony/Component/Messenger/Tests/Middleware/AllowNoHandlerMiddlewareTest.php +++ b/src/Symfony/Component/Messenger/Tests/Middleware/AllowNoHandlerMiddlewareTest.php @@ -12,6 +12,7 @@ namespace Symfony\Component\Messenger\Tests\Middleware; use PHPUnit\Framework\TestCase; +use Symfony\Component\Messenger\Envelope; use Symfony\Component\Messenger\Exception\NoHandlerForMessageException; use Symfony\Component\Messenger\Middleware\AllowNoHandlerMiddleware; use Symfony\Component\Messenger\Tests\Fixtures\DummyMessage; @@ -21,12 +22,13 @@ class AllowNoHandlerMiddlewareTest extends TestCase public function testItCallsNextMiddleware() { $message = new DummyMessage('Hey'); + $envelope = new Envelope($message); $next = $this->createPartialMock(\stdClass::class, array('__invoke')); - $next->expects($this->once())->method('__invoke')->with($message); + $next->expects($this->once())->method('__invoke')->with($envelope); $middleware = new AllowNoHandlerMiddleware(); - $middleware->handle($message, $next); + $middleware->handle($envelope, $next); } public function testItCatchesTheNoHandlerException() @@ -36,7 +38,7 @@ public function testItCatchesTheNoHandlerException() $middleware = new AllowNoHandlerMiddleware(); - $this->assertNull($middleware->handle(new DummyMessage('Hey'), $next)); + $this->assertNull($middleware->handle(new Envelope(new DummyMessage('Hey')), $next)); } /** @@ -49,6 +51,6 @@ public function testItDoesNotCatchOtherExceptions() $next->expects($this->once())->method('__invoke')->will($this->throwException(new \RuntimeException('Something went wrong.'))); $middleware = new AllowNoHandlerMiddleware(); - $middleware->handle(new DummyMessage('Hey'), $next); + $middleware->handle(new Envelope(new DummyMessage('Hey')), $next); } } diff --git a/src/Symfony/Component/Messenger/Tests/Middleware/Enhancers/ActivationMiddlewareDecoratorTest.php b/src/Symfony/Component/Messenger/Tests/Middleware/Enhancers/ActivationMiddlewareDecoratorTest.php index 6f7517808fb15..141c2b33a1246 100644 --- a/src/Symfony/Component/Messenger/Tests/Middleware/Enhancers/ActivationMiddlewareDecoratorTest.php +++ b/src/Symfony/Component/Messenger/Tests/Middleware/Enhancers/ActivationMiddlewareDecoratorTest.php @@ -13,7 +13,6 @@ use PHPUnit\Framework\TestCase; use Symfony\Component\Messenger\Envelope; -use Symfony\Component\Messenger\EnvelopeAwareInterface; use Symfony\Component\Messenger\Middleware\Enhancers\ActivationMiddlewareDecorator; use Symfony\Component\Messenger\Middleware\MiddlewareInterface; use Symfony\Component\Messenger\Tests\Fixtures\DummyMessage; @@ -26,13 +25,13 @@ class ActivationMiddlewareDecoratorTest extends TestCase public function testExecuteMiddlewareOnActivated() { $message = new DummyMessage('Hello'); - $envelope = Envelope::wrap($message); + $envelope = new Envelope($message); $next = $this->createPartialMock(\stdClass::class, array('__invoke')); $next->expects($this->never())->method('__invoke'); $middleware = $this->createMock(MiddlewareInterface::class); - $middleware->expects($this->once())->method('handle')->with($message, $next); + $middleware->expects($this->once())->method('handle')->with($envelope, $next); $decorator = new ActivationMiddlewareDecorator($middleware, true); @@ -42,7 +41,7 @@ public function testExecuteMiddlewareOnActivated() public function testExecuteMiddlewareOnActivatedWithCallable() { $message = new DummyMessage('Hello'); - $envelope = Envelope::wrap($message); + $envelope = new Envelope($message); $activated = $this->createPartialMock(\stdClass::class, array('__invoke')); $activated->expects($this->once())->method('__invoke')->with($envelope)->willReturn(true); @@ -51,25 +50,9 @@ public function testExecuteMiddlewareOnActivatedWithCallable() $next->expects($this->never())->method('__invoke'); $middleware = $this->createMock(MiddlewareInterface::class); - $middleware->expects($this->once())->method('handle')->with($message, $next); - - $decorator = new ActivationMiddlewareDecorator($middleware, $activated); - - $decorator->handle($envelope, $next); - } - - public function testExecuteEnvelopeAwareMiddlewareWithEnvelope() - { - $message = new DummyMessage('Hello'); - $envelope = Envelope::wrap($message); - - $next = $this->createPartialMock(\stdClass::class, array('__invoke')); - $next->expects($this->never())->method('__invoke'); - - $middleware = $this->createMock(array(MiddlewareInterface::class, EnvelopeAwareInterface::class)); $middleware->expects($this->once())->method('handle')->with($envelope, $next); - $decorator = new ActivationMiddlewareDecorator($middleware, true); + $decorator = new ActivationMiddlewareDecorator($middleware, $activated); $decorator->handle($envelope, $next); } @@ -77,7 +60,7 @@ public function testExecuteEnvelopeAwareMiddlewareWithEnvelope() public function testExecuteMiddlewareOnDeactivated() { $message = new DummyMessage('Hello'); - $envelope = Envelope::wrap($message); + $envelope = new Envelope($message); $next = $this->createPartialMock(\stdClass::class, array('__invoke')); $next->expects($this->once())->method('__invoke')->with($envelope); diff --git a/src/Symfony/Component/Messenger/Tests/Middleware/Enhancers/TraceableMiddlewareTest.php b/src/Symfony/Component/Messenger/Tests/Middleware/Enhancers/TraceableMiddlewareTest.php index 5e772a88fd809..a04ff7f040449 100644 --- a/src/Symfony/Component/Messenger/Tests/Middleware/Enhancers/TraceableMiddlewareTest.php +++ b/src/Symfony/Component/Messenger/Tests/Middleware/Enhancers/TraceableMiddlewareTest.php @@ -26,14 +26,14 @@ class TraceableMiddlewareTest extends TestCase public function testHandle() { $busId = 'command_bus'; - $envelope = Envelope::wrap($message = new DummyMessage('Hello')); + $envelope = new Envelope($message = new DummyMessage('Hello')); $middleware = $this->getMockBuilder(MiddlewareInterface::class)->getMock(); $middleware->expects($this->once()) ->method('handle') - ->with($message, $this->anything()) - ->will($this->returnCallback(function ($message, callable $next) { - $next($message); + ->with($envelope, $this->anything()) + ->will($this->returnCallback(function ($envelope, callable $next) { + $next($envelope); })) ; @@ -41,7 +41,7 @@ public function testHandle() $next ->expects($this->once()) ->method('__invoke') - ->with($message) + ->with($envelope) ; $stopwatch = $this->createMock(Stopwatch::class); @@ -67,14 +67,14 @@ public function testHandle() public function testHandleWithException() { $busId = 'command_bus'; - $envelope = Envelope::wrap($message = new DummyMessage('Hello')); + $envelope = new Envelope($message = new DummyMessage('Hello')); $middleware = $this->getMockBuilder(MiddlewareInterface::class)->getMock(); $middleware->expects($this->once()) ->method('handle') - ->with($message, $this->anything()) - ->will($this->returnCallback(function ($message, callable $next) { - $next($message); + ->with($envelope, $this->anything()) + ->will($this->returnCallback(function ($envelope, callable $next) { + $next($envelope); })) ; diff --git a/src/Symfony/Component/Messenger/Tests/Middleware/HandleMessageMiddlewareTest.php b/src/Symfony/Component/Messenger/Tests/Middleware/HandleMessageMiddlewareTest.php index 51c32cb10546c..6791dd6477dc8 100644 --- a/src/Symfony/Component/Messenger/Tests/Middleware/HandleMessageMiddlewareTest.php +++ b/src/Symfony/Component/Messenger/Tests/Middleware/HandleMessageMiddlewareTest.php @@ -12,6 +12,7 @@ namespace Symfony\Component\Messenger\Tests\Middleware; use PHPUnit\Framework\TestCase; +use Symfony\Component\Messenger\Envelope; use Symfony\Component\Messenger\Handler\Locator\HandlerLocator; use Symfony\Component\Messenger\Middleware\HandleMessageMiddleware; use Symfony\Component\Messenger\Tests\Fixtures\DummyMessage; @@ -21,6 +22,7 @@ class HandleMessageMiddlewareTest extends TestCase public function testItCallsTheHandlerAndNextMiddleware() { $message = new DummyMessage('Hey'); + $envelope = new Envelope($message); $handler = $this->createPartialMock(\stdClass::class, array('__invoke')); @@ -31,8 +33,8 @@ public function testItCallsTheHandlerAndNextMiddleware() ))); $handler->expects($this->once())->method('__invoke')->with($message); - $next->expects($this->once())->method('__invoke')->with($message); + $next->expects($this->once())->method('__invoke')->with($envelope); - $middleware->handle($message, $next); + $middleware->handle($envelope, $next); } } diff --git a/src/Symfony/Component/Messenger/Tests/Middleware/LoggingMiddlewareTest.php b/src/Symfony/Component/Messenger/Tests/Middleware/LoggingMiddlewareTest.php index b3bbad8bdd781..5c3439e747891 100644 --- a/src/Symfony/Component/Messenger/Tests/Middleware/LoggingMiddlewareTest.php +++ b/src/Symfony/Component/Messenger/Tests/Middleware/LoggingMiddlewareTest.php @@ -13,6 +13,7 @@ use PHPUnit\Framework\TestCase; use Psr\Log\LoggerInterface; +use Symfony\Component\Messenger\Envelope; use Symfony\Component\Messenger\Middleware\LoggingMiddleware; use Symfony\Component\Messenger\Tests\Fixtures\DummyMessage; @@ -21,6 +22,7 @@ class LoggingMiddlewareTest extends TestCase public function testDebugLogAndNextMiddleware() { $message = new DummyMessage('Hey'); + $envelope = new Envelope($message); $logger = $this->createMock(LoggerInterface::class); $logger @@ -31,10 +33,10 @@ public function testDebugLogAndNextMiddleware() $next ->expects($this->once()) ->method('__invoke') - ->with($message) + ->with($envelope) ; - (new LoggingMiddleware($logger))->handle($message, $next); + (new LoggingMiddleware($logger))->handle($envelope, $next); } /** @@ -43,6 +45,7 @@ public function testDebugLogAndNextMiddleware() public function testWarningLogOnException() { $message = new DummyMessage('Hey'); + $envelope = new Envelope($message); $logger = $this->createMock(LoggerInterface::class); $logger @@ -57,10 +60,10 @@ public function testWarningLogOnException() $next ->expects($this->once()) ->method('__invoke') - ->with($message) + ->with($envelope) ->willThrowException(new \Exception()) ; - (new LoggingMiddleware($logger))->handle($message, $next); + (new LoggingMiddleware($logger))->handle($envelope, $next); } } diff --git a/src/Symfony/Component/Messenger/Tests/Middleware/ValidationMiddlewareTest.php b/src/Symfony/Component/Messenger/Tests/Middleware/ValidationMiddlewareTest.php index 141da8e9740f6..e3d73986a3a47 100644 --- a/src/Symfony/Component/Messenger/Tests/Middleware/ValidationMiddlewareTest.php +++ b/src/Symfony/Component/Messenger/Tests/Middleware/ValidationMiddlewareTest.php @@ -24,7 +24,7 @@ class ValidationMiddlewareTest extends TestCase public function testValidateAndNextMiddleware() { $message = new DummyMessage('Hey'); - $envelope = Envelope::wrap($message); + $envelope = new Envelope($message); $validator = $this->createMock(ValidatorInterface::class); $validator @@ -45,7 +45,8 @@ public function testValidateAndNextMiddleware() public function testValidateWithStampAndNextMiddleware() { - $envelope = Envelope::wrap($message = new DummyMessage('Hey'))->with(new ValidationStamp($groups = array('Default', 'Extra'))); + $message = new DummyMessage('Hey'); + $envelope = (new Envelope($message))->with(new ValidationStamp($groups = array('Default', 'Extra'))); $validator = $this->createMock(ValidatorInterface::class); $validator ->expects($this->once()) @@ -70,7 +71,7 @@ public function testValidateWithStampAndNextMiddleware() public function testValidationFailedException() { $message = new DummyMessage('Hey'); - $envelope = Envelope::wrap($message); + $envelope = new Envelope($message); $violationList = $this->createMock(ConstraintViolationListInterface::class); $violationList diff --git a/src/Symfony/Component/Messenger/Tests/TraceableMessageBusTest.php b/src/Symfony/Component/Messenger/Tests/TraceableMessageBusTest.php index 2c3be75f98d67..d43fe8aa3726c 100644 --- a/src/Symfony/Component/Messenger/Tests/TraceableMessageBusTest.php +++ b/src/Symfony/Component/Messenger/Tests/TraceableMessageBusTest.php @@ -43,7 +43,8 @@ public function testItTracesDispatch() public function testItTracesDispatchWithEnvelope() { - $envelope = Envelope::wrap($message = new DummyMessage('Hello'))->with($stamp = new AnEnvelopeStamp()); + $message = new DummyMessage('Hello'); + $envelope = (new Envelope($message))->with($stamp = new AnEnvelopeStamp()); $bus = $this->getMockBuilder(MessageBusInterface::class)->getMock(); diff --git a/src/Symfony/Component/Messenger/Tests/Transport/AmqpExt/AmqpExtIntegrationTest.php b/src/Symfony/Component/Messenger/Tests/Transport/AmqpExt/AmqpExtIntegrationTest.php index 3abd0bc535442..f0476524a011b 100644 --- a/src/Symfony/Component/Messenger/Tests/Transport/AmqpExt/AmqpExtIntegrationTest.php +++ b/src/Symfony/Component/Messenger/Tests/Transport/AmqpExt/AmqpExtIntegrationTest.php @@ -51,8 +51,8 @@ public function testItSendsAndReceivesMessages() $sender = new AmqpSender($connection, $serializer); $receiver = new AmqpReceiver($connection, $serializer); - $sender->send($first = Envelope::wrap(new DummyMessage('First'))); - $sender->send($second = Envelope::wrap(new DummyMessage('Second'))); + $sender->send($first = new Envelope(new DummyMessage('First'))); + $sender->send($second = new Envelope(new DummyMessage('Second'))); $receivedMessages = 0; $receiver->receive(function (?Envelope $envelope) use ($receiver, &$receivedMessages, $first, $second) { @@ -75,7 +75,7 @@ public function testItReceivesSignals() $connection->queue()->purge(); $sender = new AmqpSender($connection, $serializer); - $sender->send(Envelope::wrap(new DummyMessage('Hello'))); + $sender->send(new Envelope(new DummyMessage('Hello'))); $amqpReadTimeout = 30; $dsn = getenv('MESSENGER_AMQP_DSN').'?read_timeout='.$amqpReadTimeout; diff --git a/src/Symfony/Component/Messenger/Tests/Transport/AmqpExt/AmqpSenderTest.php b/src/Symfony/Component/Messenger/Tests/Transport/AmqpExt/AmqpSenderTest.php index a6a3a14422d77..398f0092922c7 100644 --- a/src/Symfony/Component/Messenger/Tests/Transport/AmqpExt/AmqpSenderTest.php +++ b/src/Symfony/Component/Messenger/Tests/Transport/AmqpExt/AmqpSenderTest.php @@ -25,7 +25,7 @@ class AmqpSenderTest extends TestCase { public function testItSendsTheEncodedMessage() { - $envelope = Envelope::wrap(new DummyMessage('Oy')); + $envelope = new Envelope(new DummyMessage('Oy')); $encoded = array('body' => '...', 'headers' => array('type' => DummyMessage::class)); $serializer = $this->getMockBuilder(SerializerInterface::class)->getMock(); diff --git a/src/Symfony/Component/Messenger/Tests/Transport/AmqpExt/AmqpTransportTest.php b/src/Symfony/Component/Messenger/Tests/Transport/AmqpExt/AmqpTransportTest.php index e605b4ce9bb02..589a764c1a5cb 100644 --- a/src/Symfony/Component/Messenger/Tests/Transport/AmqpExt/AmqpTransportTest.php +++ b/src/Symfony/Component/Messenger/Tests/Transport/AmqpExt/AmqpTransportTest.php @@ -44,7 +44,7 @@ public function testReceivesMessages() $amqpEnvelope->method('getBody')->willReturn('body'); $amqpEnvelope->method('getHeaders')->willReturn(array('my' => 'header')); - $serializer->method('decode')->with(array('body' => 'body', 'headers' => array('my' => 'header')))->willReturn(Envelope::wrap($decodedMessage)); + $serializer->method('decode')->with(array('body' => 'body', 'headers' => array('my' => 'header')))->willReturn(new Envelope($decodedMessage)); $connection->method('get')->willReturn($amqpEnvelope); $transport->receive(function (Envelope $envelope) use ($transport, $decodedMessage) { diff --git a/src/Symfony/Component/Messenger/Tests/Transport/Enhancers/StopWhenMemoryUsageIsExceededReceiverTest.php b/src/Symfony/Component/Messenger/Tests/Transport/Enhancers/StopWhenMemoryUsageIsExceededReceiverTest.php index a34be3bfc2ce5..11e9d336823ce 100644 --- a/src/Symfony/Component/Messenger/Tests/Transport/Enhancers/StopWhenMemoryUsageIsExceededReceiverTest.php +++ b/src/Symfony/Component/Messenger/Tests/Transport/Enhancers/StopWhenMemoryUsageIsExceededReceiverTest.php @@ -26,7 +26,7 @@ class StopWhenMemoryUsageIsExceededReceiverTest extends TestCase public function testReceiverStopsWhenMemoryLimitExceeded(int $memoryUsage, int $memoryLimit, bool $shouldStop) { $callable = function ($handler) { - $handler(Envelope::wrap(new DummyMessage('API'))); + $handler(new Envelope(new DummyMessage('API'))); }; $decoratedReceiver = $this->getMockBuilder(CallbackReceiver::class) @@ -59,7 +59,7 @@ public function memoryProvider() public function testReceiverLogsMemoryExceededWhenLoggerIsGiven() { $callable = function ($handler) { - $handler(Envelope::wrap(new DummyMessage('API'))); + $handler(new Envelope(new DummyMessage('API'))); }; $decoratedReceiver = $this->getMockBuilder(CallbackReceiver::class) diff --git a/src/Symfony/Component/Messenger/Tests/Transport/Enhancers/StopWhenMessageCountIsExceededReceiverTest.php b/src/Symfony/Component/Messenger/Tests/Transport/Enhancers/StopWhenMessageCountIsExceededReceiverTest.php index e5c51335b3b8e..b7c2d2cc55cf0 100644 --- a/src/Symfony/Component/Messenger/Tests/Transport/Enhancers/StopWhenMessageCountIsExceededReceiverTest.php +++ b/src/Symfony/Component/Messenger/Tests/Transport/Enhancers/StopWhenMessageCountIsExceededReceiverTest.php @@ -26,9 +26,9 @@ class StopWhenMessageCountIsExceededReceiverTest extends TestCase public function testReceiverStopsWhenMaximumCountExceeded($max, $shouldStop) { $callable = function ($handler) { - $handler(Envelope::wrap(new DummyMessage('First message'))); - $handler(Envelope::wrap(new DummyMessage('Second message'))); - $handler(Envelope::wrap(new DummyMessage('Third message'))); + $handler(new Envelope(new DummyMessage('First message'))); + $handler(new Envelope(new DummyMessage('Second message'))); + $handler(new Envelope(new DummyMessage('Third message'))); }; $decoratedReceiver = $this->getMockBuilder(CallbackReceiver::class) @@ -79,7 +79,7 @@ public function testReceiverDoesntIncreaseItsCounterWhenReceiveNullMessage() public function testReceiverLogsMaximumCountExceededWhenLoggerIsGiven() { $callable = function ($handler) { - $handler(Envelope::wrap(new DummyMessage('First message'))); + $handler(new Envelope(new DummyMessage('First message'))); }; $decoratedReceiver = $this->getMockBuilder(CallbackReceiver::class) diff --git a/src/Symfony/Component/Messenger/Tests/Transport/Serialization/SerializerTest.php b/src/Symfony/Component/Messenger/Tests/Transport/Serialization/SerializerTest.php index ded634dfd5296..f37aaa697aaab 100644 --- a/src/Symfony/Component/Messenger/Tests/Transport/Serialization/SerializerTest.php +++ b/src/Symfony/Component/Messenger/Tests/Transport/Serialization/SerializerTest.php @@ -29,7 +29,7 @@ public function testEncodedIsDecodable() new SerializerComponent\Serializer(array(new ObjectNormalizer()), array('json' => new JsonEncoder())) ); - $envelope = Envelope::wrap(new DummyMessage('Hello')); + $envelope = new Envelope(new DummyMessage('Hello')); $this->assertEquals($envelope, $serializer->decode($serializer->encode($envelope))); } @@ -40,7 +40,7 @@ public function testEncodedWithStampsIsDecodable() new SerializerComponent\Serializer(array(new ObjectNormalizer()), array('json' => new JsonEncoder())) ); - $envelope = Envelope::wrap(new DummyMessage('Hello')) + $envelope = (new Envelope(new DummyMessage('Hello'))) ->with(new SerializerStamp(array(ObjectNormalizer::GROUPS => array('foo')))) ->with(new ValidationStamp(array('foo', 'bar'))) ; @@ -54,7 +54,7 @@ public function testEncodedIsHavingTheBodyAndTypeHeader() new SerializerComponent\Serializer(array(new ObjectNormalizer()), array('json' => new JsonEncoder())) ); - $encoded = $serializer->encode(Envelope::wrap(new DummyMessage('Hello'))); + $encoded = $serializer->encode(new Envelope(new DummyMessage('Hello'))); $this->assertArrayHasKey('body', $encoded); $this->assertArrayHasKey('headers', $encoded); @@ -72,7 +72,7 @@ public function testUsesTheCustomFormatAndContext() $encoder = new Serializer($serializer, 'csv', array('foo' => 'bar')); - $encoded = $encoder->encode(Envelope::wrap($message)); + $encoded = $encoder->encode(new Envelope($message)); $decoded = $encoder->decode($encoded); $this->assertSame('Yay', $encoded['body']); @@ -87,7 +87,7 @@ public function testEncodedWithSymfonySerializerForStamps() array() ); - $envelope = Envelope::wrap(new DummyMessage('Hello')) + $envelope = (new Envelope(new DummyMessage('Hello'))) ->with($serializerStamp = new SerializerStamp(array(ObjectNormalizer::GROUPS => array('foo')))) ->with($validationStamp = new ValidationStamp(array('foo', 'bar'))) ; diff --git a/src/Symfony/Component/Messenger/Tests/WorkerTest.php b/src/Symfony/Component/Messenger/Tests/WorkerTest.php index 2c14d3b024f19..041e46327c745 100644 --- a/src/Symfony/Component/Messenger/Tests/WorkerTest.php +++ b/src/Symfony/Component/Messenger/Tests/WorkerTest.php @@ -27,14 +27,14 @@ public function testWorkerDispatchTheReceivedMessage() $ipaMessage = new DummyMessage('IPA'); $receiver = new CallbackReceiver(function ($handler) use ($apiMessage, $ipaMessage) { - $handler(Envelope::wrap($apiMessage)); - $handler(Envelope::wrap($ipaMessage)); + $handler(new Envelope($apiMessage)); + $handler(new Envelope($ipaMessage)); }); $bus = $this->getMockBuilder(MessageBusInterface::class)->getMock(); - $bus->expects($this->at(0))->method('dispatch')->with(Envelope::wrap($apiMessage)->with(new ReceivedStamp())); - $bus->expects($this->at(1))->method('dispatch')->with(Envelope::wrap($ipaMessage)->with(new ReceivedStamp())); + $bus->expects($this->at(0))->method('dispatch')->with((new Envelope($apiMessage))->with(new ReceivedStamp())); + $bus->expects($this->at(1))->method('dispatch')->with((new Envelope($ipaMessage))->with(new ReceivedStamp())); $worker = new Worker($receiver, $bus); $worker->run(); @@ -42,7 +42,7 @@ public function testWorkerDispatchTheReceivedMessage() public function testWorkerDoesNotWrapMessagesAlreadyWrappedWithReceivedMessage() { - $envelop = Envelope::wrap(new DummyMessage('API'))->with(new ReceivedStamp()); + $envelop = (new Envelope(new DummyMessage('API')))->with(new ReceivedStamp()); $receiver = new CallbackReceiver(function ($handler) use ($envelop) { $handler($envelop); }); @@ -59,7 +59,7 @@ public function testWorkerIsThrowingExceptionsBackToGenerators() { $receiver = new CallbackReceiver(function ($handler) { try { - $handler(Envelope::wrap(new DummyMessage('Hello'))); + $handler(new Envelope(new DummyMessage('Hello'))); $this->assertTrue(false, 'This should not be called because the exception is sent back to the generator.'); } catch (\InvalidArgumentException $e) {