components-contrib/tests/certification/pubsub/rabbitmq
Josh van Leeuwen 9be6d157a4
tests/certification: Updates dapr/dapr to `master` HEAD (#3084)
Signed-off-by: joshvanl <me@joshvanl.dev>
Co-authored-by: Bernd Verst <github@bernd.dev>
2023-08-21 17:06:55 -07:00
..
components Add priority queue support to rabbitmq pub/sub (#2680) 2023-03-17 13:00:49 +00:00
mtls_sasl_external RabbitMQ: Support for external authentication with SASL (#2515) 2023-03-16 16:30:54 +00:00
README.md RabbitMQ Bindings: Support for mTLS and external authentication with SASL (#2656) 2023-05-03 22:07:50 +00:00
config.yaml add component certification test for pubsub.rabbitmq (#1240) 2021-11-02 09:21:47 -07:00
docker-compose.yml RabbitMQ: Support for external authentication with SASL (#2515) 2023-03-16 16:30:54 +00:00
rabbitmq_test.go tests/certification: Updates dapr/dapr to `master` HEAD (#3084) 2023-08-21 17:06:55 -07:00

README.md

RabbitMQ certification testing

This project aims to test the RabbitMQ Pub/Sub component under various conditions.

Test plan

  • Bring up a RabbitMQ cluster
  • Test single publisher / single subscriber
    • Start an app with one publisher and one subscriber
    • The publisher advertises to 3 topic
    • The subscriber is subscribed to 2 topics
    • Test: Sends 1000+ unique messages with keys set
    • App: Simulates periodic errors
    • Component: Retries on error
    • App: Observes successful messages
    • Test: Confirms that all expected messages were received
    • Test: Confirms that subscriber does not receive messages from the non-subscribed topic
  • Test single publisher / multiple subscribers with same consumer ID
    • Start one publisher and one subscriber with consumer ID "A"
    • Verify equality between sent and received messages
    • Start second subscriber with consumer ID "A"
    • Verify that total number of received messages by both subscribers equals to the number of successfully published messages
  • Test single publisher / multiple subscribers with distinct consumer IDs
    • Start one publisher, one subscriber with consumer ID "A", and two subscribers with consumer ID "B"
    • Verify that the number of published messages equals to the sum of:
      • the number of messages received by subscriber "A"
      • the total number of the messages received by subscribers "B"
    • App: Simulates periodic errors
    • Component: Retries on error
  • Test TTL is regarded.
    • Setting a large TTL only at the message level but not component level, wait for a small period, and verify that the message is received.
    • Setting a TTL only at the message level but not component level expires messages correctly
    • Setting a default TTL at the component level expires messages correctly
      • Create component spec with the field ttlInSeconds.
      • Run dapr application with component.
      • Send a message, wait TTL seconds, and verify the message is deleted/expired.
    • Setting a TTL at the component level and message level ignores the default component level TTL and always uses the message level TTL specified
  • Test mTLS External Authentication
    • Being able to connect to the RabbitMQ
  • Test priority queues
    • Being able to publish and subscribe to priority messages/topics