Class RabbitListenerTestHarness
- java.lang.Object
-
- org.springframework.amqp.rabbit.annotation.RabbitListenerAnnotationBeanPostProcessor
-
- org.springframework.amqp.rabbit.test.RabbitListenerTestHarness
-
- All Implemented Interfaces:
Aware
,BeanClassLoaderAware
,BeanFactoryAware
,BeanPostProcessor
,SmartInitializingSingleton
,EnvironmentAware
,Ordered
public class RabbitListenerTestHarness extends RabbitListenerAnnotationBeanPostProcessor
BeanPostProcessor extendingRabbitListenerAnnotationBeanPostProcessor
. 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
- Author:
- Gary Russell, Artem Bilan, Miguel Gross Valle
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
RabbitListenerTestHarness.InvocationData
-
Field Summary
-
Fields inherited from class org.springframework.amqp.rabbit.annotation.RabbitListenerAnnotationBeanPostProcessor
DEFAULT_RABBIT_LISTENER_CONTAINER_FACTORY_BEAN_NAME, RABBIT_EMPTY_STRING_ARGUMENTS_PROPERTY
-
Fields inherited from interface org.springframework.core.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
-
-
Constructor Summary
Constructors Constructor Description RabbitListenerTestHarness(AnnotationMetadata importMetadata)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <T> T
getDelegate(String id)
Get the actual listener object (not the spy).<T> LambdaAnswer<T>
getLambdaAnswerFor(String id, boolean callRealMethod, LambdaAnswer.ValueToReturn<T> callback)
Return aLambdaAnswer
that is properly configured to invoke the listener.LatchCountDownAndCallRealMethodAnswer
getLatchAnswerFor(String id, int count)
Return aLatchCountDownAndCallRealMethodAnswer
that is properly configured to invoke the listener.RabbitListenerTestHarness.InvocationData
getNextInvocationDataFor(String id, long wait, TimeUnit unit)
<T> T
getSpy(String id)
protected Collection<Declarable>
processListener(MethodRabbitListenerEndpoint endpoint, RabbitListener rabbitListener, Object bean, Object target, String beanName)
-
Methods inherited from class org.springframework.amqp.rabbit.annotation.RabbitListenerAnnotationBeanPostProcessor
afterSingletonsInstantiated, assertBeanFactory, getOrder, noBeanFoundMessage, postProcessAfterInitialization, postProcessBeforeInitialization, processAmqpListener, resolveExpressionAsString, setBeanClassLoader, setBeanFactory, setCharset, setContainerFactoryBeanName, setEndpointRegistry, setEnvironment, setMessageHandlerMethodFactory
-
-
-
-
Constructor Detail
-
RabbitListenerTestHarness
public RabbitListenerTestHarness(AnnotationMetadata importMetadata)
-
-
Method Detail
-
processListener
protected Collection<Declarable> processListener(MethodRabbitListenerEndpoint endpoint, RabbitListener rabbitListener, Object bean, Object target, String beanName)
- Overrides:
processListener
in classRabbitListenerAnnotationBeanPostProcessor
-
getLatchAnswerFor
public LatchCountDownAndCallRealMethodAnswer getLatchAnswerFor(String id, int count)
Return aLatchCountDownAndCallRealMethodAnswer
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 aLambdaAnswer
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
-
-