1212use Symfony \Component \Messenger \Envelope ;
1313use Symfony \Component \Messenger \Middleware \MiddlewareInterface ;
1414use Symfony \Component \Messenger \Middleware \StackInterface ;
15+ use Symfony \Component \Messenger \Stamp \ReceivedStamp ;
1516
1617class BaggageSchemaMiddlewareTest extends TestCase
1718{
@@ -25,9 +26,10 @@ public function testSchemaIsSetFromStamp(): void
2526
2627 $ resolver = new BaggageSchemaResolver ();
2728 $ baggageCodec = new BaggageCodec ();
28- $ middleware = new BaggageSchemaMiddleware ($ resolver , $ baggageCodec );
29+ $ middleware = new BaggageSchemaMiddleware ($ resolver , $ baggageCodec, ' public ' );
2930 $ stamp = new BaggageSchemaStamp ($ schema , $ rawBaggage );
3031 $ envelope = (new Envelope (new \stdClass ()))->with ($ stamp );
32+ $ envelope = $ envelope ->with (new ReceivedStamp ('async ' ));
3133 $ stack = $ this ->createMock (StackInterface::class);
3234 $ nextMiddleware = new class implements MiddlewareInterface {
3335 public function handle (Envelope $ envelope , StackInterface $ stack ): Envelope
@@ -68,7 +70,7 @@ public function testSchemaStampIsInjectedIfMissing(): void
6870 ->setSchema ($ schema )
6971 ->setBaggage ($ baggage );
7072 $ baggageCodec = new BaggageCodec ();
71- $ middleware = new BaggageSchemaMiddleware ($ resolver , $ baggageCodec );
73+ $ middleware = new BaggageSchemaMiddleware ($ resolver , $ baggageCodec, ' public ' );
7274 $ originalEnvelope = new Envelope (new \stdClass ());
7375 $ stack = $ this ->createMock (StackInterface::class);
7476
@@ -91,4 +93,32 @@ public function handle(Envelope $envelope, StackInterface $stack): Envelope
9193 $ this ->assertSame ($ schema , $ stamp ->schema );
9294 $ this ->assertSame ($ rawBaggage , $ stamp ->baggage );
9395 }
96+
97+ public function testSchemaStampIsDefaultSchema (): void
98+ {
99+ $ resolver = new BaggageSchemaResolver ();
100+ $ baggageCodec = new BaggageCodec ();
101+ $ middleware = new BaggageSchemaMiddleware ($ resolver , $ baggageCodec , 'public ' );
102+ $ originalEnvelope = new Envelope (new \stdClass ());
103+ $ stack = $ this ->createMock (StackInterface::class);
104+
105+ $ stack ->expects ($ this ->once ())
106+ ->method ('next ' )
107+ ->willReturnCallback (function () {
108+ return new class implements MiddlewareInterface {
109+ public function handle (Envelope $ envelope , StackInterface $ stack ): Envelope
110+ {
111+ return $ envelope ;
112+ }
113+ };
114+ });
115+
116+ $ resultEnvelope = $ middleware ->handle ($ originalEnvelope , $ stack );
117+
118+ $ stamp = $ resultEnvelope ->last (BaggageSchemaStamp::class);
119+
120+ $ this ->assertInstanceOf (BaggageSchemaStamp::class, $ stamp );
121+ $ this ->assertSame ('public ' , $ stamp ->schema );
122+ $ this ->assertSame ('' , $ stamp ->baggage );
123+ }
94124}
0 commit comments