org.apache.camel.test.junit4
Class CamelSpringTestSupport

java.lang.Object
  extended by org.junit.Assert
      extended by org.apache.camel.test.junit4.TestSupport
          extended by org.apache.camel.test.junit4.CamelTestSupport
              extended by org.apache.camel.test.junit4.CamelSpringTestSupport

public abstract class CamelSpringTestSupport
extends CamelTestSupport

Version:

Field Summary
protected  org.springframework.context.support.AbstractApplicationContext applicationContext
           
protected static Object lock
           
protected static ThreadLocal<org.springframework.context.support.AbstractApplicationContext> threadAppContext
           
 
Fields inherited from class org.apache.camel.test.junit4.CamelTestSupport
camelContextService, consumer, context, template
 
Fields inherited from class org.apache.camel.test.junit4.TestSupport
log, LS, testName
 
Constructor Summary
CamelSpringTestSupport()
           
 
Method Summary
protected  void assertValidContext(org.apache.camel.CamelContext context)
           
protected abstract  org.springframework.context.support.AbstractApplicationContext createApplicationContext()
           
protected  org.apache.camel.CamelContext createCamelContext()
           
 void doPreSetup()
          Strategy to perform any pre setup, before CamelContext is created
protected  Class<?> excludeRoute()
          Template method used to exclude a Route from the test camel context
protected  Class<?>[] excludeRoutes()
          Template method used to exclude Route from the test time context route scanning
protected  int getExpectedRouteCount()
           
<T> T
getMandatoryBean(Class<T> type, String name)
          Looks up the mandatory spring bean of the given name and type, failing if it is not present or the correct type
protected  org.springframework.context.ApplicationContext getRouteExcludingApplicationContext()
          Create a parent context that initializes a PackageScanClassResolver to exclude a set of given classes from being resolved.
 void postProcessTest()
          Lets post process this test instance to process any Camel annotations.
 void tearDown()
           
static void tearSpringDownAfterClass()
           
 
Methods inherited from class org.apache.camel.test.junit4.CamelTestSupport
assertExpression, assertMockEndpointsSatisfied, assertMockEndpointsSatisfied, assertPredicate, assertResolveLanguage, camelContextService, consumer, context, createExchangeWithBody, createJndiContext, createRegistry, createRouteBuilder, createRouteBuilders, debugAfter, debugBefore, disableJMX, doPostSetup, enableJMX, getCamelContextService, getMandatoryEndpoint, getMandatoryEndpoint, getMockEndpoint, getShutdownTimeout, isCreateCamelContextPerClass, isLazyLoadingTypeConverter, isMockEndpoints, isUseAdviceWith, isUseDebugger, isUseRouteBuilder, resetMocks, resolveMandatoryEndpoint, resolveMandatoryEndpoint, sendBodies, sendBody, sendBody, setCamelContextService, setUp, setUseRouteBuilder, startCamelContext, stopCamelContext, tearDownAfterClass, template, useJmx
 
Methods inherited from class org.apache.camel.test.junit4.TestSupport
assertCollectionSize, assertCollectionSize, assertDirectoryEquals, assertDirectoryEquals, assertEndpointUri, assertExpression, assertFileExists, assertInMessageBodyEquals, assertInMessageHeader, assertIsInstanceOf, assertListSize, assertListSize, assertMessageHeader, assertOneElement, assertOutMessageBodyEquals, assertOutMessageHeader, assertPredicate, assertPredicateDoesNotMatch, assertPredicateMatches, assertStringContains, body, bodyAs, createDirectory, createExchangeWithBody, deleteDirectory, deleteDirectory, faultBody, faultBodyAs, getRouteList, getTestMethodName, header, isJava15, isJavaVendor, isPlatform, outBody, outBodyAs, property, resolveMandatoryEndpoint, resolveMandatoryEndpoint, systemProperty, systemProperty, unwrap, unwrapChannel
 
Methods inherited from class org.junit.Assert
assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertFalse, assertFalse, assertNotNull, assertNotNull, assertNotSame, assertNotSame, assertNull, assertNull, assertSame, assertSame, assertThat, assertThat, assertTrue, assertTrue, fail, fail
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

threadAppContext

protected static ThreadLocal<org.springframework.context.support.AbstractApplicationContext> threadAppContext

lock

protected static Object lock

applicationContext

protected org.springframework.context.support.AbstractApplicationContext applicationContext
Constructor Detail

CamelSpringTestSupport

public CamelSpringTestSupport()
Method Detail

createApplicationContext

protected abstract org.springframework.context.support.AbstractApplicationContext createApplicationContext()

postProcessTest

public void postProcessTest()
                     throws Exception
Description copied from class: CamelTestSupport
Lets post process this test instance to process any Camel annotations. Note that using Spring Test or Guice is a more powerful approach.

Overrides:
postProcessTest in class CamelTestSupport
Throws:
Exception

doPreSetup

public void doPreSetup()
                throws Exception
Description copied from class: CamelTestSupport
Strategy to perform any pre setup, before CamelContext is created

Overrides:
doPreSetup in class CamelTestSupport
Throws:
Exception

tearDown

public void tearDown()
              throws Exception
Overrides:
tearDown in class CamelTestSupport
Throws:
Exception

tearSpringDownAfterClass

public static void tearSpringDownAfterClass()
                                     throws Exception
Throws:
Exception

getRouteExcludingApplicationContext

protected org.springframework.context.ApplicationContext getRouteExcludingApplicationContext()
Create a parent context that initializes a PackageScanClassResolver to exclude a set of given classes from being resolved. Typically this is used at test time to exclude certain routes, which might otherwise be just noisy, from being discovered and initialized.

To use this filtering mechanism it is necessary to provide the ApplicationContext returned from here as the parent context to your test context e.g.

 protected AbstractXmlApplicationContext createApplicationContext() {
     return new ClassPathXmlApplicationContext(new String[] {"test-context.xml"}, getRouteExcludingApplicationContext());
 }
 
This will, in turn, call the template methods excludedRoutes and excludedRoute to determine the classes to be excluded from scanning.

Returns:
ApplicationContext a parent ApplicationContext configured to exclude certain classes from package scanning

excludeRoutes

protected Class<?>[] excludeRoutes()
Template method used to exclude Route from the test time context route scanning

Returns:
Class[] the classes to be excluded from test time context route scanning

excludeRoute

protected Class<?> excludeRoute()
Template method used to exclude a Route from the test camel context


getMandatoryBean

public <T> T getMandatoryBean(Class<T> type,
                              String name)
Looks up the mandatory spring bean of the given name and type, failing if it is not present or the correct type


assertValidContext

protected void assertValidContext(org.apache.camel.CamelContext context)
Overrides:
assertValidContext in class CamelTestSupport

getExpectedRouteCount

protected int getExpectedRouteCount()

createCamelContext

protected org.apache.camel.CamelContext createCamelContext()
                                                    throws Exception
Overrides:
createCamelContext in class CamelTestSupport
Throws:
Exception


Apache CAMEL