Skip to content

Commit 96d68a4

Browse files
committed
Add Localstack Docker container for SQS functional tests
1 parent 4acde80 commit 96d68a4

File tree

5 files changed

+22
-5
lines changed

5 files changed

+22
-5
lines changed

.env

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
ENQUEUE_AWS__SQS__KEY=key
2+
ENQUEUE_AWS__SQS__SECRET=secret
3+
ENQUEUE_AWS__SQS__REGION=us-east-1
4+
ENQUEUE_AWS__SQS__ENDPOINT=http://localstack:4576
5+
ENQUEUE_AWS__SQS__VERSION=latest

bin/test

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ waitForService beanstalkd 11300 50
3737
waitForService gearmand 4730 50
3838
waitForService kafka 9092 50
3939
waitForService mongo 27017 50
40+
waitForService localstack 4576 50
4041

4142
php pkg/job-queue/Tests/Functional/app/console doctrine:database:create --if-not-exists
4243
php pkg/job-queue/Tests/Functional/app/console doctrine:schema:update --force

docker-compose.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ services:
1414
- google-pubsub
1515
- rabbitmqssl
1616
- mongo
17+
- localstack
1718
volumes:
1819
- './:/mqdev'
1920
environment:
@@ -37,6 +38,8 @@ services:
3738
- AWS_SQS_KEY=$ENQUEUE_AWS__SQS__KEY
3839
- AWS_SQS_SECRET=$ENQUEUE_AWS__SQS__SECRET
3940
- AWS_SQS_REGION=$ENQUEUE_AWS__SQS__REGION
41+
- AWS_SQS_ENDPOINT=$ENQUEUE_AWS__SQS__ENDPOINT
42+
- AWS_SQS_VERSION=$ENQUEUE_AWS__SQS__VERSION
4043
- BEANSTALKD_HOST=beanstalkd
4144
- BEANSTALKD_PORT=11300
4245
- BEANSTALKD_DSN=beanstalk://beanstalkd:11300
@@ -109,6 +112,14 @@ services:
109112
ports:
110113
- "27017:27017"
111114

115+
localstack:
116+
image: 'localstack/localstack:latest'
117+
ports:
118+
- '4576:4576'
119+
environment:
120+
HOSTNAME_EXTERNAL: 'localstack'
121+
SERVICES: 'sqs'
122+
112123
volumes:
113124
mysql-data:
114125
driver: local

pkg/enqueue-bundle/Tests/Functional/App/config/custom-config.yml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
parameters:
22
locale: 'en'
33
secret: 'ThisTokenIsNotSoSecretChangeIt'
4-
env(AWS_SQS_REGION): 'us-east-1'
5-
env(AWS_SQS_KEY): 'key'
6-
env(AWS_SQS_SECRET): 'secret'
74

85
framework:
96
#esi: ~
@@ -41,8 +38,9 @@ services:
4138
class: Aws\Sqs\SqsClient
4239
arguments:
4340
-
41+
endpoint: '%env(AWS_SQS_ENDPOINT)%'
4442
region: '%env(AWS_SQS_REGION)%'
45-
version: '2012-11-05'
43+
version: '%env(AWS_SQS_VERSION)%'
4644
credentials:
4745
key: '%env(AWS_SQS_KEY)%'
4846
secret: '%env(AWS_SQS_SECRET)%'

pkg/test/SqsExtension.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,16 @@ trait SqsExtension
1212
*/
1313
private function buildSqsContext()
1414
{
15-
if (false == getenv('AWS_SQS_KEY')) {
15+
if (false == getenv('AWS_SQS_ENDPOINT') && false == getenv('AWS_SQS_KEY')) {
1616
throw new \PHPUnit_Framework_SkippedTestError('Functional tests are not allowed in this environment');
1717
}
1818

1919
$config = [
2020
'key' => getenv('AWS_SQS_KEY'),
2121
'secret' => getenv('AWS_SQS_SECRET'),
2222
'region' => getenv('AWS_SQS_REGION'),
23+
'version' => getenv('AWS_SQS_VERSION'),
24+
'endpoint' => getenv('AWS_SQS_ENDPOINT'),
2325
'lazy' => false,
2426
];
2527

0 commit comments

Comments
 (0)