mirror of
https://github.com/OpenBankProject/OBP-API.git
synced 2026-02-06 16:36:54 +00:00
feature/Add testcontainers RabbitMQ
This commit is contained in:
parent
3bc7d9114b
commit
fa323be804
@ -499,7 +499,15 @@
|
||||
<artifactId>amqp-client</artifactId>
|
||||
<version>5.22.0</version>
|
||||
</dependency>
|
||||
|
||||
|
||||
<!-- https://mvnrepository.com/artifact/org.testcontainers/rabbitmq -->
|
||||
<dependency>
|
||||
<groupId>org.testcontainers</groupId>
|
||||
<artifactId>rabbitmq</artifactId>
|
||||
<version>1.20.3</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
|
||||
62
obp-api/src/test/scala/code/container/EmbeddedRabbitMQ.scala
Normal file
62
obp-api/src/test/scala/code/container/EmbeddedRabbitMQ.scala
Normal file
@ -0,0 +1,62 @@
|
||||
package code.container
|
||||
|
||||
import code.api.v5_0_0.V500ServerSetup
|
||||
import code.setup.DefaultUsers
|
||||
import com.rabbitmq.client.{Channel, Connection, ConnectionFactory}
|
||||
import org.scalatest.Ignore
|
||||
import org.testcontainers.containers.RabbitMQContainer
|
||||
|
||||
@Ignore
|
||||
class EmbeddedRabbitMQ extends V500ServerSetup with DefaultUsers {
|
||||
|
||||
val rabbitMQContainer = new RabbitMQContainer("rabbitmq:3.7.25-management-alpine")
|
||||
|
||||
override def beforeAll(): Unit = {
|
||||
super.beforeAll()
|
||||
// Start RabbitMQ container
|
||||
rabbitMQContainer.start()
|
||||
}
|
||||
|
||||
override def afterAll(): Unit = {
|
||||
super.afterAll()
|
||||
rabbitMQContainer.stop()
|
||||
}
|
||||
|
||||
feature(s"test EmbeddedRabbitMQ") {
|
||||
scenario("Publish and Consume Message") {
|
||||
|
||||
val rabbitHost = rabbitMQContainer.getHost
|
||||
val rabbitPort = rabbitMQContainer.getAmqpPort
|
||||
|
||||
// Set up RabbitMQ connection
|
||||
val factory = new ConnectionFactory()
|
||||
factory.setHost(rabbitHost)
|
||||
factory.setPort(rabbitPort)
|
||||
|
||||
val connection: Connection = factory.newConnection()
|
||||
val channel: Channel = connection.createChannel()
|
||||
|
||||
// Declare a queue
|
||||
val queueName = "test-queue"
|
||||
channel.queueDeclare(queueName, false, false, false, null)
|
||||
|
||||
// Publish a message
|
||||
val message = "Hello, RabbitMQ!"
|
||||
channel.basicPublish("", queueName, null, message.getBytes)
|
||||
println(s"Published message: $message")
|
||||
|
||||
// Consume the message
|
||||
val delivery = channel.basicGet(queueName, true)
|
||||
val consumedMessage = new String(delivery.getBody)
|
||||
|
||||
println(s"Consumed message: $consumedMessage")
|
||||
consumedMessage shouldBe message
|
||||
|
||||
// Clean up
|
||||
channel.close()
|
||||
connection.close()
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user