Skip to content

Commit cbedb5a

Browse files
committed
Merge branch '7.1' into 7.2
* 7.1: (27 commits) add translations for the Slug constraint [Messenger] Fix `TransportMessageIdStamp` not always added [DoctrineBridge] Fix compatibility to Doctrine persistence 2.5 in Doctrine Bridge 6.4 to avoid Projects stuck on 6.3 [PropertyInfo] Fix add missing composer conflict [ErrorHandler] Don't trigger "internal" deprecations for anonymous LazyClosure instances [VarDumper] Fix displaying closure's "this" from anonymous classes [Doctrine][Messenger] Prevents multiple TransportMessageIdStamp being stored in envelope [HttpKernel] Don't override existing LoggerInterface autowiring alias in LoggerPass reject inline notations followed by invalid content [Security] Fix triggering session tracking from ContextListener [AssetMapper] add leading slash to public prefix fix: modify Exception message parameter order [Yaml] Fix parsing of unquoted strings in Parser::lexUnquotedString() to ignore spaces Update exception.css Remove outdated guard from security xsd schema Bump Symfony version to 7.1.11 Update VERSION for 7.1.10 Update CHANGELOG for 7.1.10 Bump Symfony version to 6.4.18 Update VERSION for 6.4.17 ...
2 parents 4a9a37c + 81a47ed commit cbedb5a

File tree

4 files changed

+31
-7
lines changed

4 files changed

+31
-7
lines changed

Tests/Transport/BeanstalkdReceiverTest.php

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
use Symfony\Component\Messenger\Bridge\Beanstalkd\Transport\Connection;
1919
use Symfony\Component\Messenger\Envelope;
2020
use Symfony\Component\Messenger\Exception\MessageDecodingFailedException;
21+
use Symfony\Component\Messenger\Stamp\TransportMessageIdStamp;
2122
use Symfony\Component\Messenger\Transport\Serialization\PhpSerializer;
2223
use Symfony\Component\Messenger\Transport\Serialization\Serializer;
2324
use Symfony\Component\Serializer as SerializerComponent;
@@ -40,14 +41,21 @@ public function testItReturnsTheDecodedMessageToTheHandler()
4041
$receiver = new BeanstalkdReceiver($connection, $serializer);
4142
$actualEnvelopes = $receiver->get();
4243
$this->assertCount(1, $actualEnvelopes);
43-
$this->assertEquals(new DummyMessage('Hi'), $actualEnvelopes[0]->getMessage());
44+
/** @var Envelope $actualEnvelope */
45+
$actualEnvelope = $actualEnvelopes[0];
46+
$this->assertEquals(new DummyMessage('Hi'), $actualEnvelope->getMessage());
4447

4548
/** @var BeanstalkdReceivedStamp $receivedStamp */
46-
$receivedStamp = $actualEnvelopes[0]->last(BeanstalkdReceivedStamp::class);
49+
$receivedStamp = $actualEnvelope->last(BeanstalkdReceivedStamp::class);
4750

4851
$this->assertInstanceOf(BeanstalkdReceivedStamp::class, $receivedStamp);
4952
$this->assertSame('1', $receivedStamp->getId());
5053
$this->assertSame($tube, $receivedStamp->getTube());
54+
55+
/** @var TransportMessageIdStamp $transportMessageIdStamp */
56+
$transportMessageIdStamp = $actualEnvelope->last(TransportMessageIdStamp::class);
57+
$this->assertNotNull($transportMessageIdStamp);
58+
$this->assertSame('1', $transportMessageIdStamp->getId());
5159
}
5260

5361
public function testItReturnsEmptyArrayIfThereAreNoMessages()

Tests/Transport/BeanstalkdSenderTest.php

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
use Symfony\Component\Messenger\Bridge\Beanstalkd\Transport\Connection;
1818
use Symfony\Component\Messenger\Envelope;
1919
use Symfony\Component\Messenger\Stamp\DelayStamp;
20+
use Symfony\Component\Messenger\Stamp\TransportMessageIdStamp;
2021
use Symfony\Component\Messenger\Transport\Serialization\SerializerInterface;
2122

2223
final class BeanstalkdSenderTest extends TestCase
@@ -27,13 +28,21 @@ public function testSend()
2728
$encoded = ['body' => '...', 'headers' => ['type' => DummyMessage::class]];
2829

2930
$connection = $this->createMock(Connection::class);
30-
$connection->expects($this->once())->method('send')->with($encoded['body'], $encoded['headers'], 0);
31+
$connection->expects($this->once())->method('send')
32+
->with($encoded['body'], $encoded['headers'], 0)
33+
->willReturn('1')
34+
;
3135

3236
$serializer = $this->createMock(SerializerInterface::class);
3337
$serializer->method('encode')->with($envelope)->willReturn($encoded);
3438

3539
$sender = new BeanstalkdSender($connection, $serializer);
36-
$sender->send($envelope);
40+
$actualEnvelope = $sender->send($envelope);
41+
42+
/** @var TransportMessageIdStamp $transportMessageIdStamp */
43+
$transportMessageIdStamp = $actualEnvelope->last(TransportMessageIdStamp::class);
44+
$this->assertNotNull($transportMessageIdStamp);
45+
$this->assertSame('1', $transportMessageIdStamp->getId());
3746
}
3847

3948
public function testSendWithDelay()

Transport/BeanstalkdReceiver.php

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
use Symfony\Component\Messenger\Transport\Receiver\MessageCountAwareInterface;
1919
use Symfony\Component\Messenger\Transport\Serialization\PhpSerializer;
2020
use Symfony\Component\Messenger\Transport\Serialization\SerializerInterface;
21+
use Symfony\Component\Messenger\Stamp\TransportMessageIdStamp;
2122

2223
/**
2324
* @author Antonio Pauletich <[email protected]>
@@ -52,7 +53,12 @@ public function get(): iterable
5253
throw $exception;
5354
}
5455

55-
return [$envelope->with(new BeanstalkdReceivedStamp($beanstalkdEnvelope['id'], $this->connection->getTube()))];
56+
return [$envelope
57+
->withoutAll(TransportMessageIdStamp::class)
58+
->with(
59+
new BeanstalkdReceivedStamp($beanstalkdEnvelope['id'], $this->connection->getTube()),
60+
new TransportMessageIdStamp($beanstalkdEnvelope['id']),
61+
)];
5662
}
5763

5864
public function ack(Envelope $envelope): void

Transport/BeanstalkdSender.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313

1414
use Symfony\Component\Messenger\Envelope;
1515
use Symfony\Component\Messenger\Stamp\DelayStamp;
16+
use Symfony\Component\Messenger\Stamp\TransportMessageIdStamp;
1617
use Symfony\Component\Messenger\Transport\Sender\SenderInterface;
1718
use Symfony\Component\Messenger\Transport\Serialization\PhpSerializer;
1819
use Symfony\Component\Messenger\Transport\Serialization\SerializerInterface;
@@ -39,8 +40,8 @@ public function send(Envelope $envelope): Envelope
3940
$delayStamp = $envelope->last(DelayStamp::class);
4041
$delayInMs = null !== $delayStamp ? $delayStamp->getDelay() : 0;
4142

42-
$this->connection->send($encodedMessage['body'], $encodedMessage['headers'] ?? [], $delayInMs);
43+
$id = $this->connection->send($encodedMessage['body'], $encodedMessage['headers'] ?? [], $delayInMs);
4344

44-
return $envelope;
45+
return $envelope->with(new TransportMessageIdStamp($id));
4546
}
4647
}

0 commit comments

Comments
 (0)