|
6 | 6 |
|
7 | 7 | use PHPUnit\Framework\Attributes\DataProvider;
|
8 | 8 | use PHPUnit\Framework\TestCase;
|
| 9 | +use Puzzle\AMQP\Messages\Bodies\Binary; |
9 | 10 | use Swarrot\Broker\Message;
|
10 | 11 | use Puzzle\AMQP\Messages\ContentType;
|
11 | 12 | use Puzzle\AMQP\Messages\Bodies\Text;
|
@@ -252,6 +253,31 @@ public static function providerTestCloneIntoWritableMessage(): array
|
252 | 253 | ];
|
253 | 254 | }
|
254 | 255 |
|
| 256 | + public function testCloneIntoWritableMessageFromCompressedMessage(): void |
| 257 | + { |
| 258 | + $readableMessage = InMemory::build('old.routing.key', new Binary('This is fine'), [ |
| 259 | + 'compression' => 'gzip', |
| 260 | + 'compression_content-type' => 'application/json', |
| 261 | + ], [ |
| 262 | + 'content_type' => 'application/octet-stream', |
| 263 | + ]); |
| 264 | + |
| 265 | + $message = $readableMessage->cloneIntoWritableMessage( |
| 266 | + new \Puzzle\AMQP\Messages\Message('new.routing.key'), |
| 267 | + ); |
| 268 | + |
| 269 | + self::assertInstanceOf(WritableMessage::class, $message); |
| 270 | + self::assertSame('new.routing.key', $message->getRoutingKey()); |
| 271 | + |
| 272 | + $headers = $message->getHeaders(); |
| 273 | + $this->assertSameArrayExceptOrder( |
| 274 | + ['compression', 'compression_content-type', 'routing_key', 'app_id', 'message_datetime'], |
| 275 | + array_keys($headers) |
| 276 | + ); |
| 277 | + self::assertSame('application/json', $headers['compression_content-type']); |
| 278 | + self::assertSame('gzip', $headers['compression']); |
| 279 | + } |
| 280 | + |
255 | 281 | public function testToStringInvalidUtf8(): void
|
256 | 282 | {
|
257 | 283 | $invalidUTF8Message = new Message(
|
|
0 commit comments