Guides
- Introduction
- Getting Started
- Acceptance Tests
- Functional Tests
- Unit Tests
- Debugging
- Modules And Helpers
- Reusing Test Code
- Advanced Usage
- BDD
- Customization
- Data
- API Testing
- Codecoverage
- Reporting
- Continuous Integration
- Parallel Execution
Testomatio - Test Management for Codeception
Search
AMQP
Installation
composer require --dev codeception/module-amqpDescription
This module interacts with message broker software that implements the Advanced Message Queuing Protocol (AMQP) standard. For example, RabbitMQ (tested).
Config
- host: localhost - host to connect
- username: guest - username to connect
- password: guest - password to connect
- vhost: β/β - vhost to connect
- cleanup: true - defined queues will be purged before running every test.
- queues: [mail, twitter] - queues to cleanup
- single_channel - create and use only one channel during test execution
- reconnect - reconnects before each test to drop unused open channels
Example
modules:
enabled:
- AMQP:
host: 'localhost'
port: '5672'
username: 'guest'
password: 'guest'
vhost: '/'
queues: [queue1, queue2]
single_channel: false
reconnect: false
Public Properties
- connection - AMQPStreamConnection - current connection
Actions
bindQueueToExchange
param string$queueparam string$exchangeparam string$routing_keyparam bool$nowaitparam ?array$argumentsparam ?int$ticketreturn mixed
Binds a queue to an exchange
This is an alias of method queue_bind of PhpAmqpLib\Channel\AMQPChannel.
<?php
$I->bindQueueToExchange(
'nameOfMyQueueToBind', // name of the queue
'transactionTracking.transaction', // exchange name to bind to
'your.routing.key' // Optionally, provide a binding key
)declareExchange
param string$exchangeparam string$typeparam bool$passiveparam bool$durableparam bool$auto_deleteparam bool$internalparam bool$nowaitparam ?array$argumentsparam ?int$ticketreturn mixed
Declares an exchange
This is an alias of method exchange_declare of PhpAmqpLib\Channel\AMQPChannel.
<?php
$I->declareExchange(
'nameOfMyExchange', // exchange name
'topic' // exchange type
)declareQueue
param string$queueparam bool$passiveparam bool$durableparam bool$exclusiveparam bool$auto_deleteparam bool$nowaitparam ?array$argumentsparam ?int$ticketreturn mixed
Declares queue, creates if needed
This is an alias of method queue_declare of PhpAmqpLib\Channel\AMQPChannel.
<?php
$I->declareQueue(
'nameOfMyQueue', // exchange name
)dontSeeQueueIsEmpty
param string$queuereturn void
Checks if queue is not empty.
<?php
$I->pushToQueue('queue.emails', 'Hello, davert');
$I->dontSeeQueueIsEmpty('queue.emails');grabMessageFromQueue
param string$queuereturn ?\PhpAmqpLib\Message\AMQPMessage
Takes last message from queue.
<?php
$message = $I->grabMessageFromQueue('queue.emails');purgeAllQueues
return void
Purge all queues defined in config.
<?php
$I->purgeAllQueues();purgeQueue
param string$queueNamereturn void
Purge a specific queue defined in config.
<?php
$I->purgeQueue('queue.emails');pushToExchange
param string$exchangeparam \PhpAmqpLib\Message\AMQPMessage|string$messageparam ?string$routing_keyreturn void
Sends message to exchange by sending exchange name, message and (optionally) a routing key
<?php
$I->pushToExchange('exchange.emails', 'thanks');
$I->pushToExchange('exchange.emails', new AMQPMessage('Thanks!'));
$I->pushToExchange('exchange.emails', new AMQPMessage('Thanks!'), 'severity');pushToQueue
param string$queueparam \PhpAmqpLib\Message\AMQPMessage|string$messagereturn void
Sends message to queue
<?php
$I->pushToQueue('queue.jobs', 'create user');
$I->pushToQueue('queue.jobs', new AMQPMessage('create'));scheduleQueueCleanup
param string$queuereturn void
Add a queue to purge list
seeMessageInQueueContainsText
param string$queueparam string$textreturn void
Checks if message containing text received.
This method drops message from queue This method will wait for message. If none is sent the script will stuck.
<?php
$I->pushToQueue('queue.emails', 'Hello, davert');
$I->seeMessageInQueueContainsText('queue.emails','davert');seeNumberOfMessagesInQueue
param string$queueparam int$expectedreturn void
Checks that queue have expected number of message
<?php
$I->pushToQueue('queue.emails', 'Hello, davert');
$I->seeNumberOfMessagesInQueue('queue.emails',1);seeQueueIsEmpty
param string$queuereturn void
Checks that queue is empty
<?php
$I->pushToQueue('queue.emails', 'Hello, davert');
$I->purgeQueue('queue.emails');
$I->seeQueueIsEmpty('queue.emails');β


