Class RabbitListenerTestHarness

java.lang.Object
org.springframework.amqp.rabbit.annotation.RabbitListenerAnnotationBeanPostProcessor
org.springframework.amqp.rabbit.test.RabbitListenerTestHarness
All Implemented Interfaces:
org.springframework.beans.factory.Aware, org.springframework.beans.factory.BeanClassLoaderAware, org.springframework.beans.factory.BeanFactoryAware, org.springframework.beans.factory.config.BeanPostProcessor, org.springframework.beans.factory.SmartInitializingSingleton, org.springframework.context.EnvironmentAware, org.springframework.core.Ordered

public class RabbitListenerTestHarness extends org.springframework.amqp.rabbit.annotation.RabbitListenerAnnotationBeanPostProcessor
BeanPostProcessor extending RabbitListenerAnnotationBeanPostProcessor. Wraps the listener bean in a CGLIB proxy with an advice to capture the arguments and result (if any) in a blocking queue. Test cases can access the results by autowiring the test harness into test cases.
Since:
1.6
  • Constructor Details

    • RabbitListenerTestHarness

      public RabbitListenerTestHarness(org.springframework.core.type.AnnotationMetadata importMetadata)
  • Method Details

    • processListener

      protected Collection<org.springframework.amqp.core.Declarable> processListener(org.springframework.amqp.rabbit.listener.MethodRabbitListenerEndpoint endpoint, org.springframework.amqp.rabbit.annotation.RabbitListener rabbitListener, Object bean, Object target, String beanName)
      Overrides:
      processListener in class org.springframework.amqp.rabbit.annotation.RabbitListenerAnnotationBeanPostProcessor
    • getLatchAnswerFor

      public LatchCountDownAndCallRealMethodAnswer getLatchAnswerFor(String id, int count)
      Return a LatchCountDownAndCallRealMethodAnswer that is properly configured to invoke the listener.
      Parameters:
      id - the listener id.
      count - the count.
      Returns:
      the answer.
      Since:
      2.1.16
    • getLambdaAnswerFor

      public <T> LambdaAnswer<T> getLambdaAnswerFor(String id, boolean callRealMethod, LambdaAnswer.ValueToReturn<T> callback)
      Return a LambdaAnswer that is properly configured to invoke the listener.
      Type Parameters:
      T - the return type.
      Parameters:
      id - the listener id.
      callRealMethod - true to call the real method.
      callback - the callback.
      Returns:
      the answer.
      Since:
      2.1.16
    • getNextInvocationDataFor

      public RabbitListenerTestHarness.InvocationData getNextInvocationDataFor(String id, long wait, TimeUnit unit) throws InterruptedException
      Throws:
      InterruptedException
    • getSpy

      public <T> T getSpy(String id)
    • getDelegate

      public <T> T getDelegate(String id)
      Get the actual listener object (not the spy).
      Type Parameters:
      T - the type.
      Parameters:
      id - the id.
      Returns:
      the listener.
      Since:
      2.1.16