Author: ningjiang Date: Thu May 5 08:28:30 2011 New Revision: 1099712 URL: http://svn.apache.org/viewvc?rev=1099712&view=rev Log: CAMEL-3867 Added OSGi integration tests for the camel-cache
Added: camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/cache/CacheRoutesManagementTest.java - copied, changed from r1099711, camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/cache/CacheManagerFactoryRefTest.java Modified: camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/cache/CacheManagerFactoryRefTest.java Modified: camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/cache/CacheManagerFactoryRefTest.java URL: http://svn.apache.org/viewvc/camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/cache/CacheManagerFactoryRefTest.java?rev=1099712&r1=1099711&r2=1099712&view=diff ============================================================================== --- camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/cache/CacheManagerFactoryRefTest.java (original) +++ camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/cache/CacheManagerFactoryRefTest.java Thu May 5 08:28:30 2011 @@ -22,6 +22,7 @@ import net.sf.ehcache.Cache; import net.sf.ehcache.CacheManager; import org.apache.camel.builder.RouteBuilder; +import org.apache.camel.component.cache.CacheConstants; import org.apache.camel.component.cache.CacheEndpoint; import org.apache.camel.component.cache.CacheManagerFactory; import org.apache.camel.itest.osgi.OSGiIntegrationTestSupport; @@ -54,6 +55,9 @@ public class CacheManagerFactoryRefTest public void testCache() throws Exception { CacheEndpoint endpoint = (CacheEndpoint) context.getEndpoint(CACHE_URI); + // do some routes to let everything be initialized + template.sendBody("direct:add", "Hello World"); + // Is CacheManagerFactory really referenced? CacheManagerFactory cmf = endpoint.getCacheManagerFactory(); assertEquals("Cache Manager Factory Referenced", cmfRef, cmf); @@ -67,7 +71,10 @@ public class CacheManagerFactoryRefTest protected RouteBuilder createRouteBuilder() { return new RouteBuilder() { public void configure() { - from("direct:test").to(CACHE_URI); + from("direct:add") + .setHeader(CacheConstants.CACHE_OPERATION, constant(CacheConstants.CACHE_OPERATION_ADD)) + .setHeader(CacheConstants.CACHE_KEY, constant("foo")) + .to(CACHE_URI); } }; } Copied: camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/cache/CacheRoutesManagementTest.java (from r1099711, camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/cache/CacheManagerFactoryRefTest.java) URL: http://svn.apache.org/viewvc/camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/cache/CacheRoutesManagementTest.java?p2=camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/cache/CacheRoutesManagementTest.java&p1=camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/cache/CacheManagerFactoryRefTest.java&r1=1099711&r2=1099712&rev=1099712&view=diff ============================================================================== --- camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/cache/CacheManagerFactoryRefTest.java (original) +++ camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/cache/CacheRoutesManagementTest.java Thu May 5 08:28:30 2011 @@ -20,9 +20,10 @@ import javax.naming.Context; import net.sf.ehcache.Cache; import net.sf.ehcache.CacheManager; +import net.sf.ehcache.Status; import org.apache.camel.builder.RouteBuilder; -import org.apache.camel.component.cache.CacheEndpoint; +import org.apache.camel.component.cache.CacheConstants; import org.apache.camel.component.cache.CacheManagerFactory; import org.apache.camel.itest.osgi.OSGiIntegrationTestSupport; import org.apache.karaf.testing.Helper; @@ -39,8 +40,10 @@ import static org.ops4j.pax.exam.contain import static org.ops4j.pax.exam.container.def.PaxRunnerOptions.workingDirectory; @RunWith(JUnit4TestRunner.class) -public class CacheManagerFactoryRefTest extends OSGiIntegrationTestSupport { +public class CacheRoutesManagementTest extends OSGiIntegrationTestSupport { private static final String CACHE_URI = "cache:foo?cacheManagerFactory=#cacheManagerFactory"; + private static final String ROUTE1_ID = "TEST_ROUTE_1"; + private static final String ROUTE2_ID = "TEST_ROUTE_2"; private TestingCacheManagerFactory cmfRef = new TestingCacheManagerFactory("ehcache_test.xml"); @Override @@ -52,22 +55,47 @@ public class CacheManagerFactoryRefTest @Test public void testCache() throws Exception { - CacheEndpoint endpoint = (CacheEndpoint) context.getEndpoint(CACHE_URI); + // Is cache manager initialized before doing any routing? + CacheManager cacheManager = cmfRef.getCacheManager(); + assertNull("CacheManager initialized", cacheManager); - // Is CacheManagerFactory really referenced? - CacheManagerFactory cmf = endpoint.getCacheManagerFactory(); - assertEquals("Cache Manager Factory Referenced", cmfRef, cmf); - - // Is the right ehcache_test.xml config. loaded? - Cache cache = cmfRef.getCacheManager().getCache("testingOne"); - assertNotNull("Is ehcache_test.xml loaded", cache); + // Now do some routes to let endpoints be initialized + template.sendBody("direct:add1", "Hello World"); + template.sendBody("direct:add2", "Hello World"); + + //Now should not be null + cacheManager = cmfRef.getCacheManager(); + assertNotNull("CacheManager initialized", cacheManager); + + Cache cache = cmfRef.getCacheManager().getCache("foo"); + + // Is cache alive + assertEquals("Is cache still alive", Status.STATUS_ALIVE, cache.getStatus()); + + context.stopRoute(ROUTE1_ID); + + // Is cache still alive + assertEquals("Is cache still alive", Status.STATUS_ALIVE, cache.getStatus()); + + context.stop(); + + // Was the cache shutdowned with context? + assertEquals("Is cache still alive", Status.STATUS_SHUTDOWN, cache.getStatus()); } @Override protected RouteBuilder createRouteBuilder() { return new RouteBuilder() { public void configure() { - from("direct:test").to(CACHE_URI); + from("direct:add1") + .setHeader(CacheConstants.CACHE_OPERATION, constant(CacheConstants.CACHE_OPERATION_ADD)) + .setHeader(CacheConstants.CACHE_KEY, constant("foo")) + .to(CACHE_URI).setId(ROUTE1_ID); + + from("direct:add2") + .setHeader(CacheConstants.CACHE_OPERATION, constant(CacheConstants.CACHE_OPERATION_ADD)) + .setHeader(CacheConstants.CACHE_KEY, constant("foo")) + .to(CACHE_URI).setId(ROUTE2_ID); } }; }