diff --git a/bin/run-fun-test.sh b/bin/run-fun-test.sh index 626741366..120ef3ffe 100755 --- a/bin/run-fun-test.sh +++ b/bin/run-fun-test.sh @@ -3,4 +3,4 @@ set -x set -e -docker-compose run --workdir="/mqdev" --rm dev ./bin/test "$@" \ No newline at end of file +docker-compose run --workdir="/mqdev" --rm dev ./bin/test "$@" diff --git a/bin/test b/bin/test index 6607d84c9..c9de45600 100755 --- a/bin/test +++ b/bin/test @@ -37,6 +37,7 @@ waitForService beanstalkd 11300 50 waitForService gearmand 4730 50 waitForService kafka 9092 50 waitForService mongo 27017 50 +waitForService localstack 4576 50 php pkg/job-queue/Tests/Functional/app/console doctrine:database:create --if-not-exists php pkg/job-queue/Tests/Functional/app/console doctrine:schema:update --force diff --git a/docker-compose.yml b/docker-compose.yml index 77a4773a0..02d8dd1bc 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -14,6 +14,7 @@ services: - google-pubsub - rabbitmqssl - mongo + - localstack volumes: - './:/mqdev' environment: @@ -34,9 +35,11 @@ services: - DOCTRINE_PASSWORD=rootpass - REDIS_HOST=redis - REDIS_PORT=6379 - - AWS_SQS_KEY=$ENQUEUE_AWS__SQS__KEY - - AWS_SQS_SECRET=$ENQUEUE_AWS__SQS__SECRET - - AWS_SQS_REGION=$ENQUEUE_AWS__SQS__REGION + - AWS_SQS_KEY=key + - AWS_SQS_SECRET=secret + - AWS_SQS_REGION=us-east-1 + - AWS_SQS_ENDPOINT=http://localstack:4576 + - AWS_SQS_VERSION=latest - BEANSTALKD_HOST=beanstalkd - BEANSTALKD_PORT=11300 - BEANSTALKD_DSN=beanstalk://beanstalkd:11300 @@ -109,6 +112,14 @@ services: ports: - "27017:27017" + localstack: + image: 'localstack/localstack:latest' + ports: + - '4576:4576' + environment: + HOSTNAME_EXTERNAL: 'localstack' + SERVICES: 'sqs' + volumes: mysql-data: driver: local diff --git a/pkg/enqueue-bundle/Tests/Functional/App/config/custom-config.yml b/pkg/enqueue-bundle/Tests/Functional/App/config/custom-config.yml index ae7f57943..5407f8496 100644 --- a/pkg/enqueue-bundle/Tests/Functional/App/config/custom-config.yml +++ b/pkg/enqueue-bundle/Tests/Functional/App/config/custom-config.yml @@ -2,8 +2,10 @@ parameters: locale: 'en' secret: 'ThisTokenIsNotSoSecretChangeIt' env(AWS_SQS_REGION): 'us-east-1' + env(AWS_SQS_VERSION): 'latest' env(AWS_SQS_KEY): 'key' env(AWS_SQS_SECRET): 'secret' + env(AWS_SQS_ENDPOINT): 'http://localstack:4576' framework: #esi: ~ @@ -41,8 +43,9 @@ services: class: Aws\Sqs\SqsClient arguments: - + endpoint: '%env(AWS_SQS_ENDPOINT)%' region: '%env(AWS_SQS_REGION)%' - version: '2012-11-05' + version: '%env(AWS_SQS_VERSION)%' credentials: key: '%env(AWS_SQS_KEY)%' secret: '%env(AWS_SQS_SECRET)%' diff --git a/pkg/enqueue-bundle/Tests/Functional/UseCasesTest.php b/pkg/enqueue-bundle/Tests/Functional/UseCasesTest.php index 2b53b16c2..5fc37c506 100644 --- a/pkg/enqueue-bundle/Tests/Functional/UseCasesTest.php +++ b/pkg/enqueue-bundle/Tests/Functional/UseCasesTest.php @@ -201,6 +201,7 @@ public function provideEnqueueConfigs() 'key' => getenv('AWS_SQS_KEY'), 'secret' => getenv('AWS_SQS_SECRET'), 'region' => getenv('AWS_SQS_REGION'), + 'endpoint' => getenv('AWS_SQS_ENDPOINT'), ], ], ]]; diff --git a/pkg/test/SqsExtension.php b/pkg/test/SqsExtension.php index 4446c3346..dacb1836f 100644 --- a/pkg/test/SqsExtension.php +++ b/pkg/test/SqsExtension.php @@ -12,7 +12,7 @@ trait SqsExtension */ private function buildSqsContext() { - if (false == getenv('AWS_SQS_KEY')) { + if (false == getenv('AWS_SQS_ENDPOINT') && false == getenv('AWS_SQS_KEY')) { throw new \PHPUnit_Framework_SkippedTestError('Functional tests are not allowed in this environment'); } @@ -20,6 +20,8 @@ private function buildSqsContext() 'key' => getenv('AWS_SQS_KEY'), 'secret' => getenv('AWS_SQS_SECRET'), 'region' => getenv('AWS_SQS_REGION'), + 'version' => getenv('AWS_SQS_VERSION'), + 'endpoint' => getenv('AWS_SQS_ENDPOINT'), 'lazy' => false, ];