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_PROPERTYFields inherited from interface org.springframework.core.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription<T> TgetDelegate(String id) Get the actual listener object (not the spy).<T> LambdaAnswer<T>getLambdaAnswerFor(String id, boolean callRealMethod, LambdaAnswer.ValueToReturn<T> callback) Return aLambdaAnswerthat is properly configured to invoke the listener.getLatchAnswerFor(String id, int count) Return aLatchCountDownAndCallRealMethodAnswerthat is properly configured to invoke the listener.getNextInvocationDataFor(String id, long wait, TimeUnit unit) <T> Tprotected 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:
processListenerin classRabbitListenerAnnotationBeanPostProcessor
-
getLatchAnswerFor
Return aLatchCountDownAndCallRealMethodAnswerthat 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 aLambdaAnswerthat 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
-