From 2bb91add86f21cd3aaad6af21daf2cf73d234e51 Mon Sep 17 00:00:00 2001 From: viktorprogger Date: Fri, 20 Sep 2024 18:42:38 +0500 Subject: [PATCH] Fix bug and test --- src/Message/AbstractEnvelope.php | 5 ++++- tests/Unit/Message/JsonMessageSerializerTest.php | 7 +++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/Message/AbstractEnvelope.php b/src/Message/AbstractEnvelope.php index 1ff25073..f8482e1c 100644 --- a/src/Message/AbstractEnvelope.php +++ b/src/Message/AbstractEnvelope.php @@ -26,8 +26,11 @@ public function __construct(MessageInterface $message) if (is_array($this->metadata[EnvelopeInterface::ENVELOPE_STACK_KEY])) { $this->metadata[EnvelopeInterface::ENVELOPE_STACK_KEY] = array_merge( - [static::class], $envelopes, + array_filter( + $this->metadata[EnvelopeInterface::ENVELOPE_STACK_KEY], + static fn (string $envelope): bool => !in_array($envelope, $envelopes), + ), ); } else { $this->metadata[EnvelopeInterface::ENVELOPE_STACK_KEY] = [static::class]; diff --git a/tests/Unit/Message/JsonMessageSerializerTest.php b/tests/Unit/Message/JsonMessageSerializerTest.php index 776a9835..cf710282 100644 --- a/tests/Unit/Message/JsonMessageSerializerTest.php +++ b/tests/Unit/Message/JsonMessageSerializerTest.php @@ -66,7 +66,7 @@ public function testUnserializeFromData(): void $this->assertInstanceOf(MessageInterface::class, $message); $this->assertEquals($payload['data'], $message->getData()); - $this->assertEquals([], $message->getMetadata()); + $this->assertEquals([EnvelopeInterface::ENVELOPE_STACK_KEY => []], $message->getMetadata()); } public function testUnserializeWithMetadata(): void @@ -78,7 +78,10 @@ public function testUnserializeWithMetadata(): void $this->assertInstanceOf(MessageInterface::class, $message); $this->assertEquals($payload['data'], $message->getData()); - $this->assertEquals(['int' => 1, 'str' => 'string', 'bool' => true], $message->getMetadata()); + $this->assertEquals( + ['int' => 1, 'str' => 'string', 'bool' => true, EnvelopeInterface::ENVELOPE_STACK_KEY => []], + $message->getMetadata() + ); } public function testUnserializeEnvelopeStack(): void