private void verifyMethodBehavior(String methodName, Object... methodArgs) throws InvocationTargetException, IllegalAccessException {
String doMethodName = "do" + methodName.substring(0, 1).toUpperCase() + methodName.substring(1);
Method doMethod = findMethodWithName(BaseInboundHandlerWithTracingAndMdcSupport.class, doMethodName);
PipelineContinuationBehavior doMethodDeafultReturnVal = (PipelineContinuationBehavior)doMethod.invoke(handler, methodArgs);
assertThat(doMethodDeafultReturnVal, is(PipelineContinuationBehavior.CONTINUE));
verifyMethodBehaviorDetails(methodName, methodArgs, null, false);
verifyMethodBehaviorDetails(methodName, methodArgs, null, true);
verifyMethodBehaviorDetails(methodName, methodArgs, PipelineContinuationBehavior.CONTINUE, false);
verifyMethodBehaviorDetails(methodName, methodArgs, PipelineContinuationBehavior.CONTINUE, true);
verifyMethodBehaviorDetails(methodName, methodArgs, PipelineContinuationBehavior.DO_NOT_FIRE_CONTINUE_EVENT, false);
verifyMethodBehaviorDetails(methodName, methodArgs, PipelineContinuationBehavior.DO_NOT_FIRE_CONTINUE_EVENT, true);
}