ygalescot / behat-swarrot-context
Behat Swarrot Context to test AMQP messages, based on Swarrot library and PECL AMQP php extension.
Installs: 6
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 2
Forks: 1
Open Issues: 0
pkg:composer/ygalescot/behat-swarrot-context
Requires
- ext-amqp: *
- behat/behat: ^3.4
- swarrot/swarrot: ^2.4
- symfony/yaml: ^3.4
This package is not auto-updated.
Last update: 2025-12-25 21:05:33 UTC
README
This project is an extension built for Behat that allows you to test AMQP messages.
It is based on Swarrot library and PECL AMQP php extension.
Setup
Simply add the SwarrotContext to your behat.yml config:
default:
suites:
your_suite:
...
contexts:
- ...
- 'Ygalescot\BehatSwarrotContext\Context\SwarrotContext'
By default the SwarrotContext uses the default connection to RabbitMQ:
host: localhost
port: 5672
vhost: /
login: guest
password: guest
But you can override this configuration with your own values when you add the SwarrotContext to your behat.yml file:
default:
suites:
your_suite:
...
contexts:
- ...
- 'Ygalescot\BehatSwarrotContext\Context\SwarrotContext':
host: your_custom_host
port: 5672
vhost: /
login: your_custom_login
password: your_custom_password
How to use
In your Behat test scenarios you can use these steps to test your AMQP Messages:
Given I purge queue :queue_name(will purge all messages in that queue)Then I set message properties:(with properties described as YAML in a Gherkin PyStringNode)Then I set message body:(with body as a Gherkin PyStringNode)Then I publish message with routing key :routingKey(this will publish a message to RabbitMQ with previously set properties and/or body)Then I consume a message from queue :queue_nameThen the message should have property :property equal to :valueThen the message should have header :header equal to :valueThen the message body should contain :bodyThen the message body should have JSON node :node equal to :valueThen print the message body(to display the content of your message in console)Then print the message properties(to display the message properties in console)
For a fully functional example see our Behat feature file: features/context.feature
Licence
MIT