Skip to content

Commit 602c311

Browse files
authored
Merge pull request #21 from MacPaw/develop
Release
2 parents e7b7ba9 + 3ecd765 commit 602c311

3 files changed

Lines changed: 25 additions & 5 deletions

File tree

src/Messenger/Middleware/BaggageSchemaMiddleware.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,11 @@ public function handle(Envelope $envelope, StackInterface $stack): Envelope
2828
->setSchema($stamp->schema)
2929
->setBaggage($this->baggageCodec->decode($stamp->baggage));
3030

31-
return $stack->next()->handle($envelope, $stack);
31+
$result = $stack->next()->handle($envelope, $stack);
32+
33+
$this->baggageSchemaResolver->reset();
34+
35+
return $result;
3236
}
3337

3438
$schema = $this->baggageSchemaResolver->getSchema();

src/Service/BaggageSchemaResolver.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,4 +41,10 @@ public function getSchema(): ?string
4141
{
4242
return $this->schema;
4343
}
44+
45+
public function reset(): void
46+
{
47+
$this->baggage = null;
48+
$this->schema = null;
49+
}
4450
}

tests/Messenger/Middleware/BaggageSchemaMiddlewareTest.php

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,18 +32,28 @@ public function testSchemaIsSetFromStamp(): void
3232
$nextMiddleware = new class implements MiddlewareInterface {
3333
public function handle(Envelope $envelope, StackInterface $stack): Envelope
3434
{
35-
return $envelope;
35+
/** @var BaggageSchemaStamp|null $stamp */
36+
$stamp = $envelope->last(BaggageSchemaStamp::class);
37+
38+
return new Envelope((object) [
39+
'schema' => $stamp?->schema,
40+
'baggage' => $stamp?->baggage,
41+
]);
3642
}
3743
};
3844

3945
$stack->expects($this->once())
4046
->method('next')
4147
->willReturn($nextMiddleware);
4248

43-
$middleware->handle($envelope, $stack);
49+
$envelope = $middleware->handle($envelope, $stack);
50+
51+
$result = (array) $envelope->getMessage();
4452

45-
$this->assertSame($schema, $resolver->getSchema());
46-
$this->assertSame($baggage, $resolver->getBaggage());
53+
$this->assertSame($schema, $result['schema']);
54+
$this->assertSame($baggage, $baggageCodec->decode($result['baggage']));
55+
$this->assertNull($resolver->getSchema());
56+
$this->assertNull($resolver->getBaggage());
4757
}
4858

4959
public function testSchemaStampIsInjectedIfMissing(): void

0 commit comments

Comments
 (0)