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
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
- Author:
- Gary Russell, Artem Bilan, Miguel Gross Valle
-
Nested Class Summary
Nested Classes -
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 -
Method Summary
Modifier and TypeMethodDescription<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.getLatchAnswerFor
(String id, int count) Return aLatchCountDownAndCallRealMethodAnswer
that is properly configured to invoke the listener.getNextInvocationDataFor
(String id, long wait, TimeUnit unit) <T> T
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 Details
-
RabbitListenerTestHarness
-
-
Method Details
-
processListener
protected Collection<Declarable> processListener(MethodRabbitListenerEndpoint endpoint, RabbitListener rabbitListener, Object bean, Object target, String beanName) - Overrides:
processListener
in classRabbitListenerAnnotationBeanPostProcessor
-
getLatchAnswerFor
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
-
getDelegate
Get the actual listener object (not the spy).- Type Parameters:
T
- the type.- Parameters:
id
- the id.- Returns:
- the listener.
- Since:
- 2.1.16
-