Skip to content

Commit 9f263a4

Browse files
committed
Remove Envelope::ENVELOPE_STACK_KEY
1 parent 8cda3cc commit 9f263a4

4 files changed

Lines changed: 3 additions & 68 deletions

File tree

src/Message/Envelope.php

Lines changed: 1 addition & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,8 @@
44

55
namespace Yiisoft\Queue\Message;
66

7-
use function is_array;
8-
97
abstract class Envelope implements MessageInterface
108
{
11-
/** @psalm-suppress MissingClassConstType */
12-
final public const ENVELOPE_STACK_KEY = 'envelopes';
13-
149
/**
1510
* @psalm-var array<string, mixed>
1611
*/
@@ -20,7 +15,7 @@ abstract class Envelope implements MessageInterface
2015

2116
public function __construct(MessageInterface $message, array $metadata)
2217
{
23-
$this->metadata = $this->prepareMetadata($message->getMetadata(), $metadata);
18+
$this->metadata = array_merge($message->getMetadata(), $metadata);
2419

2520
while ($message instanceof self) {
2621
$message = $message->getMessage();
@@ -54,23 +49,4 @@ final public function getMetadata(): array
5449
{
5550
return $this->metadata;
5651
}
57-
58-
private function prepareMetadata(array $messageMeta, array $metadata): array
59-
{
60-
$stack = $messageMeta[self::ENVELOPE_STACK_KEY] ?? [];
61-
if (!is_array($stack)) {
62-
$stack = [];
63-
}
64-
65-
return array_merge(
66-
$messageMeta,
67-
[
68-
self::ENVELOPE_STACK_KEY => array_merge(
69-
$stack,
70-
[static::class],
71-
),
72-
],
73-
$metadata,
74-
);
75-
}
7652
}

tests/Unit/EnvelopeTest.php

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
namespace Yiisoft\Queue\Tests\Unit;
66

77
use PHPUnit\Framework\TestCase;
8-
use Yiisoft\Queue\Message\Envelope;
98
use Yiisoft\Queue\Message\IdEnvelope;
109
use Yiisoft\Queue\Message\Message;
1110

@@ -17,14 +16,6 @@ public function testEnvelopeStack(): void
1716
$message = new IdEnvelope($message, 'test-id');
1817

1918
$this->assertEquals('test', $message->getMessage()->getData());
20-
21-
$stack = $message->getMetadata()[Envelope::ENVELOPE_STACK_KEY];
22-
$this->assertIsArray($stack);
23-
24-
$this->assertEquals([
25-
IdEnvelope::class,
26-
], $stack);
27-
2819
$this->assertEquals('test-id', $message->getMetadata()[IdEnvelope::MESSAGE_ID_KEY]);
2920
}
3021

@@ -36,15 +27,6 @@ public function testEnvelopeDuplicates(): void
3627
$message = new IdEnvelope($message, 'test-id-3');
3728

3829
$this->assertEquals('test', $message->getMessage()->getData());
39-
40-
$stack = $message->getMetadata()[Envelope::ENVELOPE_STACK_KEY];
41-
$this->assertIsArray($stack);
42-
$this->assertEquals([
43-
IdEnvelope::class,
44-
IdEnvelope::class,
45-
IdEnvelope::class,
46-
], $stack);
47-
4830
$this->assertEquals('test-id-3', $message->getMetadata()[IdEnvelope::MESSAGE_ID_KEY]);
4931
}
5032
}

tests/Unit/Message/EnvelopeTest.php

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,7 @@
55
namespace Yiisoft\Queue\Tests\Unit\Message;
66

77
use PHPUnit\Framework\TestCase;
8-
use Yiisoft\Queue\Message\Envelope;
98
use Yiisoft\Queue\Tests\App\DummyEnvelope;
10-
use Yiisoft\Queue\Message\Message;
119

1210
final class EnvelopeTest extends TestCase
1311
{
@@ -25,14 +23,4 @@ public function testFromData(): void
2523
$this->assertArrayHasKey('meta', $envelope->getMetadata());
2624
$this->assertSame('data', $envelope->getMetadata()['meta']);
2725
}
28-
29-
public function testNonArrayStackIsNormalized(): void
30-
{
31-
$base = new Message('handler', 'data', [Envelope::ENVELOPE_STACK_KEY => 'oops']);
32-
$wrapped = new DummyEnvelope($base);
33-
34-
$meta = $wrapped->getMetadata();
35-
self::assertIsArray($meta[Envelope::ENVELOPE_STACK_KEY]);
36-
self::assertSame([DummyEnvelope::class], $meta[Envelope::ENVELOPE_STACK_KEY]);
37-
}
3826
}

tests/Unit/Message/JsonMessageSerializerTest.php

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
use InvalidArgumentException;
88
use PHPUnit\Framework\Attributes\DataProvider;
99
use PHPUnit\Framework\TestCase;
10-
use Yiisoft\Queue\Message\Envelope;
1110
use Yiisoft\Queue\Message\IdEnvelope;
1211
use Yiisoft\Queue\Message\JsonMessageSerializer;
1312
use Yiisoft\Queue\Message\Message;
@@ -134,20 +133,14 @@ public function testUnserializeEnvelopeStack(): void
134133
$payload = [
135134
'type' => 'handler',
136135
'data' => 'test',
137-
'meta' => [
138-
Envelope::ENVELOPE_STACK_KEY => [
139-
IdEnvelope::class,
140-
],
141-
],
136+
'meta' => [],
142137
];
143138
$serializer = $this->createSerializer();
144139

145140
/** @var IdEnvelope $message */
146141
$message = $serializer->unserialize(json_encode($payload, JSON_THROW_ON_ERROR));
147142

148143
$this->assertEquals($payload['data'], $message->getData());
149-
$this->assertEquals([IdEnvelope::class], $message->getMetadata()[Envelope::ENVELOPE_STACK_KEY]);
150-
151144
$this->assertInstanceOf(Message::class, $message);
152145
}
153146

@@ -176,8 +169,7 @@ public function testSerializeEnvelopeStack(): void
176169

177170
$this->assertEquals(
178171
sprintf(
179-
'{"type":"handler","data":"test","meta":{"envelopes":["%s"],"%s":"test-id","message-class":"%s"}}',
180-
str_replace('\\', '\\\\', IdEnvelope::class),
172+
'{"type":"handler","data":"test","meta":{"%s":"test-id","message-class":"%s"}}',
181173
IdEnvelope::MESSAGE_ID_KEY,
182174
str_replace('\\', '\\\\', Message::class),
183175
),
@@ -188,9 +180,6 @@ public function testSerializeEnvelopeStack(): void
188180

189181
$this->assertInstanceOf(Message::class, $message);
190182
$this->assertEquals([
191-
Envelope::ENVELOPE_STACK_KEY => [
192-
IdEnvelope::class,
193-
],
194183
IdEnvelope::MESSAGE_ID_KEY => 'test-id',
195184
'message-class' => Message::class,
196185
], $message->getMetadata());

0 commit comments

Comments
 (0)