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
-
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
ConstructorsConstructorDescriptionRabbitListenerTestHarness(org.springframework.core.type.AnnotationMetadata importMetadata) -
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<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) 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
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:
processListenerin classorg.springframework.amqp.rabbit.annotation.RabbitListenerAnnotationBeanPostProcessor
-
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
-