public class RabbitListenerTestHarness extends RabbitListenerAnnotationBeanPostProcessor
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.Modifier and Type | Class and Description |
---|---|
static class |
RabbitListenerTestHarness.InvocationData |
DEFAULT_RABBIT_LISTENER_CONTAINER_FACTORY_BEAN_NAME, RABBIT_EMPTY_STRING_ARGUMENTS_PROPERTY
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
Constructor and Description |
---|
RabbitListenerTestHarness(AnnotationMetadata importMetadata) |
Modifier and Type | Method and 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 a
LambdaAnswer that is properly configured to invoke the listener. |
LatchCountDownAndCallRealMethodAnswer |
getLatchAnswerFor(String id,
int count)
Return a
LatchCountDownAndCallRealMethodAnswer 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) |
afterSingletonsInstantiated, assertBeanFactory, getOrder, noBeanFoundMessage, postProcessAfterInitialization, postProcessBeforeInitialization, processAmqpListener, resolveExpressionAsString, setBeanClassLoader, setBeanFactory, setCharset, setContainerFactoryBeanName, setEndpointRegistry, setEnvironment, setMessageHandlerMethodFactory
public RabbitListenerTestHarness(AnnotationMetadata importMetadata)
protected Collection<Declarable> processListener(MethodRabbitListenerEndpoint endpoint, RabbitListener rabbitListener, Object bean, Object target, String beanName)
processListener
in class RabbitListenerAnnotationBeanPostProcessor
public LatchCountDownAndCallRealMethodAnswer getLatchAnswerFor(String id, int count)
LatchCountDownAndCallRealMethodAnswer
that is properly configured
to invoke the listener.id
- the listener id.count
- the count.public <T> LambdaAnswer<T> getLambdaAnswerFor(String id, boolean callRealMethod, LambdaAnswer.ValueToReturn<T> callback)
LambdaAnswer
that is properly configured to invoke the listener.T
- the return type.id
- the listener id.callRealMethod
- true to call the real method.callback
- the callback.public RabbitListenerTestHarness.InvocationData getNextInvocationDataFor(String id, long wait, TimeUnit unit) throws InterruptedException
InterruptedException
public <T> T getSpy(String id)
public <T> T getDelegate(String id)
T
- the type.id
- the id.