Skip to content

Commit 62ec057

Browse files
authored
Merge pull request #1183 from andrewmy/fix-snsqs-headers
Fix snsqs non-SNS SQS message headers
2 parents 9149d43 + 99c054c commit 62ec057

File tree

9 files changed

+94
-14
lines changed

9 files changed

+94
-14
lines changed

.github/workflows/ci.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ jobs:
120120
strategy:
121121
fail-fast: false
122122
matrix:
123-
php: ['7.3', '8.0'] # same as in the container
123+
php: ['7.4', '8.0'] # same as in the container
124124
symfony_version: ['4.4.*', '5.2.*']
125125
dependencies: ['--prefer-lowest', '--prefer-dist']
126126
rdkafka_action: ['exclude-group', 'group']
@@ -159,5 +159,7 @@ jobs:
159159
- run: sed -i 's/525568/16777471/' vendor/kwn/php-rdkafka-stubs/stubs/constants.php
160160

161161
- run: bin/dev -b
162+
env:
163+
PHP_VERSION: ${{ matrix.php }}
162164

163165
- run: bin/test.sh --${{ matrix.rdkafka_action }}=rdkafka

composer.json

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
"queue-interop/amqp-interop": "^0.8.2",
2626
"queue-interop/queue-interop": "^0.8.1",
2727
"bunny/bunny": "^0.4|^0.5",
28-
"php-amqplib/php-amqplib": "^2.12.1",
28+
"php-amqplib/php-amqplib": "^3.0",
2929
"doctrine/dbal": "^2.12|^3.1",
3030
"ramsey/uuid": "^3.5|^4",
3131
"psr/log": "^1.1",
@@ -42,15 +42,16 @@
4242
"php-http/client-common": "^2.2.1",
4343
"richardfullmer/rabbitmq-management-api": "^2.1.1",
4444
"predis/predis": "^1.1",
45-
"thruway/client": "^0.5",
45+
"thruway/client": "^0.5.5",
4646
"thruway/pawl-transport": "^0.5.1",
4747
"influxdb/influxdb-php": "^1.14",
4848
"datadog/php-datadogstatsd": "^1.3",
4949
"guzzlehttp/guzzle": "^7.0.1",
5050
"php-http/discovery": "^1.13",
5151
"voryx/thruway-common": "^1.0.1",
52-
"react/dns": "^1.0",
53-
"react/event-loop": "^1.0"
52+
"react/dns": "^1.4",
53+
"react/event-loop": "^1.2",
54+
"react/promise": "^2.8"
5455
},
5556
"require-dev": {
5657
"ext-pcntl": "*",

docker-compose.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@ version: '2'
33
services:
44
dev:
55
# when image publishing gets sorted:
6-
# image: enqueue/dev:${PHP_VERSION}
6+
# image: enqueue/dev:${PHP_VERSION:-7.4}
77
build:
88
context: docker
99
args:
10-
PHP_VERSION: "${PHP_VERSION:-7.3}"
10+
PHP_VERSION: "${PHP_VERSION:-7.4}"
1111
depends_on:
1212
- rabbitmq
1313
- mysql

docker/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
ARG PHP_VERSION=7.3
1+
ARG PHP_VERSION=7.4
22
FROM makasim/nginx-php-fpm:${PHP_VERSION}-all-exts
33

44
ARG PHP_VERSION

pkg/enqueue-bundle/composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
"enqueue/test": "0.10.x-dev",
3636
"enqueue/async-event-dispatcher": "0.10.x-dev",
3737
"enqueue/async-command": "0.10.x-dev",
38-
"php-amqplib/php-amqplib": "^2.12.1",
38+
"php-amqplib/php-amqplib": "^3.0",
3939
"doctrine/doctrine-bundle": "^2.0",
4040
"doctrine/mongodb-odm-bundle": "^3.5|^4.3",
4141
"alcaeus/mongo-php-adapter": "^1.0",

pkg/monitoring/composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
"enqueue/test": "0.10.x-dev",
1616
"influxdb/influxdb-php": "^1.14",
1717
"datadog/php-datadogstatsd": "^1.3",
18-
"thruway/client": "^0.5",
18+
"thruway/client": "^0.5.5",
1919
"thruway/pawl-transport": "^0.5",
2020
"voryx/thruway-common": "^1.0.1"
2121
},

pkg/snsqs/SnsQsConsumer.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,7 @@ private function convertMessage(SqsMessage $sqsMessage): SnsQsMessage
135135
}
136136

137137
$message->setBody($sqsMessage->getBody());
138+
$message->setHeaders($sqsMessage->getHeaders());
138139
$message->setProperties($sqsMessage->getProperties());
139140

140141
return $message;

pkg/snsqs/Tests/SnsQsConsumerTest.php

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Enqueue\SnsQs\Tests;
6+
7+
use Enqueue\SnsQs\SnsQsConsumer;
8+
use Enqueue\SnsQs\SnsQsContext;
9+
use Enqueue\SnsQs\SnsQsMessage;
10+
use Enqueue\SnsQs\SnsQsQueue;
11+
use Enqueue\Sqs\SqsConsumer;
12+
use Enqueue\Sqs\SqsMessage;
13+
use PHPUnit\Framework\TestCase;
14+
15+
final class SnsQsConsumerTest extends TestCase
16+
{
17+
public function testReceivesSnsMessage(): void
18+
{
19+
$context = $this->createMock(SnsQsContext::class);
20+
$context->expects($this->once())
21+
->method('createMessage')
22+
->willReturn(new SnsQsMessage());
23+
24+
$sqsConsumer = $this->createMock(SqsConsumer::class);
25+
$sqsConsumer->expects($this->once())
26+
->method('receive')
27+
->willReturn(new SqsMessage(json_encode([
28+
'Type' => 'Notification',
29+
'TopicArn' => 'arn:aws:sns:us-east-2:12345:topic-name',
30+
'Message' => 'The Body',
31+
'MessageAttributes' => [
32+
'Headers' => [
33+
'Type' => 'String',
34+
'Value' => '[{"headerKey":"headerVal"},{"propKey": "propVal"}]',
35+
],
36+
],
37+
])));
38+
39+
$consumer = new SnsQsConsumer($context, $sqsConsumer, new SnsQsQueue('queue'));
40+
$result = $consumer->receive();
41+
42+
$this->assertInstanceOf(SnsQsMessage::class, $result);
43+
$this->assertSame('The Body', $result->getBody());
44+
$this->assertSame(['headerKey' => 'headerVal'], $result->getHeaders());
45+
$this->assertSame(['propKey' => 'propVal'], $result->getProperties());
46+
}
47+
48+
public function testReceivesSqsMessage(): void
49+
{
50+
$context = $this->createMock(SnsQsContext::class);
51+
$context->expects($this->once())
52+
->method('createMessage')
53+
->willReturn(new SnsQsMessage());
54+
55+
$sqsConsumer = $this->createMock(SqsConsumer::class);
56+
$sqsConsumer->expects($this->once())
57+
->method('receive')
58+
->willReturn(new SqsMessage(
59+
'The Body',
60+
['propKey' => 'propVal'],
61+
['headerKey' => 'headerVal'],
62+
));
63+
64+
$consumer = new SnsQsConsumer($context, $sqsConsumer, new SnsQsQueue('queue'));
65+
$result = $consumer->receive();
66+
67+
$this->assertInstanceOf(SnsQsMessage::class, $result);
68+
$this->assertSame('The Body', $result->getBody());
69+
$this->assertSame(['headerKey' => 'headerVal'], $result->getHeaders());
70+
$this->assertSame(['propKey' => 'propVal'], $result->getProperties());
71+
}
72+
}

pkg/wamp/composer.json

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,12 @@
99
"php": "^7.3|^8.0",
1010
"queue-interop/queue-interop": "^0.8.1",
1111
"enqueue/dsn": "^0.10.8",
12-
"thruway/client": "^0.5",
12+
"thruway/client": "^0.5.5",
1313
"thruway/pawl-transport": "^0.5.1",
1414
"voryx/thruway-common": "^1.0.1",
15-
"react/dns": "^1.0",
16-
"react/event-loop": "^1.0"
15+
"react/dns": "^1.4",
16+
"react/event-loop": "^1.2",
17+
"react/promise": "^2.8"
1718
},
1819
"require-dev": {
1920
"phpunit/phpunit": "^9.5",
@@ -34,10 +35,13 @@
3435
"/Tests/"
3536
]
3637
},
37-
"minimum-stability": "dev",
38+
"minimum-stability": "beta",
3839
"extra": {
3940
"branch-alias": {
4041
"dev-master": "0.10.x-dev"
4142
}
43+
},
44+
"config": {
45+
"prefer-stable": true
4246
}
4347
}

0 commit comments

Comments
 (0)