Class BrokerRunningSupport

java.lang.Object
org.springframework.amqp.rabbit.junit.BrokerRunningSupport

public final class BrokerRunningSupport extends Object
A class that can be used to prevent integration tests from failing if the Rabbit broker application is not running or not accessible. If the Rabbit broker is not running in the background all the tests here will simply be skipped (by default) because of a violated assumption (showing as successful).

If you wish to enforce the broker being available, for example, on a CI server, set the environment variable "RABBITMQ_SERVER_REQUIRED" to true and the tests will fail fast.

Since:
2.2
Author:
Dave Syer, Gary Russell
  • Field Details

  • Method Details

    • setEnvironmentVariableOverrides

      public static void setEnvironmentVariableOverrides(Map<String,String> environmentVariables)
      Set environment variable overrides for host, port etc. Will override any real environment variables, if present.

      The variables will only apply to rule instances that are created after this method is called. The overrides will remain until

      Parameters:
      environmentVariables - the variables.
    • clearEnvironmentVariableOverrides

      public static void clearEnvironmentVariableOverrides()
      Clear any environment variable overrides set in setEnvironmentVariableOverrides(Map).
    • isRunningWithEmptyQueues

      public static BrokerRunningSupport isRunningWithEmptyQueues(String... names)
      Ensure the broker is running and has a empty queue(s) with the specified name(s) in the default exchange.
      Parameters:
      names - the queues to declare for the test.
      Returns:
      a new rule that assumes an existing running broker
    • isRunning

      public static BrokerRunningSupport isRunning()
      Returns:
      a new rule that assumes an existing running broker
    • isNotRunning

      public static BrokerRunningSupport isNotRunning()
      Returns:
      a new rule that assumes there is no existing broker
    • isBrokerAndManagementRunning

      public static BrokerRunningSupport isBrokerAndManagementRunning()
      Returns:
      a new rule that assumes an existing broker with the management plugin
    • isBrokerAndManagementRunningWithEmptyQueues

      public static BrokerRunningSupport isBrokerAndManagementRunningWithEmptyQueues(String... queues)
      Parameters:
      queues - the queues.
      Returns:
      a new rule that assumes an existing broker with the management plugin with the provided queues declared (and emptied if needed)..
    • setPort

      public void setPort(int port)
      Parameters:
      port - the port to set
    • setHostName

      public void setHostName(String hostName)
      Parameters:
      hostName - the hostName to set
    • setUser

      public void setUser(String user)
      Set the user for the amqp connection default "guest".
      Parameters:
      user - the user.
    • setPassword

      public void setPassword(String password)
      Set the password for the amqp connection default "guest".
      Parameters:
      password - the password.
    • setAdminUri

      public void setAdminUri(String adminUri)
      Set the uri for the REST API.
      Parameters:
      adminUri - the uri.
    • setAdminUser

      public void setAdminUser(String user)
      Set the user for the management REST API connection default "guest".
      Parameters:
      user - the user.
    • setAdminPassword

      public void setAdminPassword(String password)
      Set the password for the management REST API connection default "guest".
      Parameters:
      password - the password.
    • getPort

      public int getPort()
      Return the port.
      Returns:
      the port.
    • getHostName

      public String getHostName()
      Return the port.
      Returns:
      the port.
    • getUser

      public String getUser()
      Return the user.
      Returns:
      the user.
    • getPassword

      public String getPassword()
      Return the password.
      Returns:
      the password.
    • getAdminUser

      public String getAdminUser()
      Return the admin user.
      Returns:
      the user.
    • getAdminPassword

      public String getAdminPassword()
      Return the admin password.
      Returns:
      the password.
    • isPurgeAfterEach

      public boolean isPurgeAfterEach()
    • setPurgeAfterEach

      public void setPurgeAfterEach(boolean purgeAfterEach)
      Purge the test queues after each test (JUnit 5).
      Parameters:
      purgeAfterEach - true to purge.
    • test

      Check connectivity to the broker and create any queues.
      Throws:
      BrokerRunningSupport.BrokerNotAliveException - if the broker is not available.
    • fatal

      public static boolean fatal()
    • generateId

      public String generateId()
      Generate the connection id for the connection used by the rule's connection factory.
      Returns:
      the id.
    • removeTestQueues

      public void removeTestQueues(String... additionalQueues)
      Remove any test queues that were created by an isRunningWithEmptyQueues(String...) method.
      Parameters:
      additionalQueues - additional queues to remove that might have been created by tests.
    • removeExchanges

      public void removeExchanges(String... exchanges)
      Remove exchanges from the broker.
      Parameters:
      exchanges - the exchanges.
      Since:
      2.3
    • purgeTestQueues

      public void purgeTestQueues()
      Delete and re-declare all the configured queues. Can be used between tests when a test might leave stale data and multiple tests use the same queue.
    • deleteQueues

      public void deleteQueues(String... queuesToDelete)
      Delete arbitrary queues from the broker.
      Parameters:
      queuesToDelete - the queues to delete.
    • deleteExchanges

      public void deleteExchanges(String... exchanges)
      Delete arbitrary exchanges from the broker.
      Parameters:
      exchanges - the exchanges to delete.
    • getConnectionFactory

      public com.rabbitmq.client.ConnectionFactory getConnectionFactory()
      Get the connection factory used by this rule.
      Returns:
      the connection factory.
    • getAdminUri

      public String getAdminUri()
      Return the admin uri.
      Returns:
      the uri.