Author: davsclaus Date: Thu Sep 23 07:54:17 2010 New Revision: 1000346 URL: http://svn.apache.org/viewvc?rev=1000346&view=rev Log: CAMEL-3126: Added more osgi tests.
Added: camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/spring/event/ camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/spring/event/EventRouteTest.java - copied, changed from r1000333, camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/spring/validator/ValidatorRouteTest.java camel/trunk/tests/camel-itest-osgi/src/test/resources/org/apache/camel/itest/osgi/spring/event/ camel/trunk/tests/camel-itest-osgi/src/test/resources/org/apache/camel/itest/osgi/spring/event/CamelContext.xml - copied, changed from r1000333, camel/trunk/tests/camel-itest-osgi/src/test/resources/org/apache/camel/itest/osgi/spring/bean/CamelContext.xml Copied: camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/spring/event/EventRouteTest.java (from r1000333, camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/spring/validator/ValidatorRouteTest.java) URL: http://svn.apache.org/viewvc/camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/spring/event/EventRouteTest.java?p2=camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/spring/event/EventRouteTest.java&p1=camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/spring/validator/ValidatorRouteTest.java&r1=1000333&r2=1000346&rev=1000346&view=diff ============================================================================== --- camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/spring/validator/ValidatorRouteTest.java (original) +++ camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/spring/event/EventRouteTest.java Thu Sep 23 07:54:17 2010 @@ -14,58 +14,51 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.camel.itest.osgi.spring.validator; +package org.apache.camel.itest.osgi.spring.event; -import org.apache.camel.ValidationException; -import org.apache.camel.builder.RouteBuilder; -import org.apache.camel.itest.osgi.OSGiIntegrationTestSupport; +import org.apache.camel.Exchange; +import org.apache.camel.component.event.CamelEvent; +import org.apache.camel.component.mock.MockEndpoint; +import org.apache.camel.itest.osgi.OSGiIntegrationSpringTestSupport; import org.junit.Test; import org.junit.runner.RunWith; import org.ops4j.pax.exam.junit.JUnit4TestRunner; +import org.springframework.context.event.ContextRefreshedEvent; +import org.springframework.osgi.context.support.OsgiBundleXmlApplicationContext; @RunWith(JUnit4TestRunner.class) -public class ValidatorRouteTest extends OSGiIntegrationTestSupport { +public class EventRouteTest extends OSGiIntegrationSpringTestSupport { - @Test - public void testValidMessage() throws Exception { - getMockEndpoint("mock:valid").expectedMessageCount(1); - getMockEndpoint("mock:invalid").expectedMessageCount(0); - getMockEndpoint("mock:finally").expectedMessageCount(1); - - template.sendBody("direct:start", - "<mail xmlns='http://foo.com/bar'><subject>Hey</subject><body>Hello world!</body></mail>"); + protected Object expectedBody = "Hello there!"; + protected String uri = "spring-event:default"; - assertMockEndpointsSatisfied(); + @Override + protected OsgiBundleXmlApplicationContext createApplicationContext() { + return new OsgiBundleXmlApplicationContext(new String[]{"org/apache/camel/itest/osgi/spring/event/CamelContext.xml"}); } @Test - public void testInvalidMessage() throws Exception { - getMockEndpoint("mock:valid").expectedMessageCount(0); - getMockEndpoint("mock:invalid").expectedMessageCount(1); - getMockEndpoint("mock:finally").expectedMessageCount(1); - - template.sendBody("direct:start", - "<mail xmlns='http://foo.com/bar'><body>Hello world!</body></mail>"); - - assertMockEndpointsSatisfied(); - } - - @Override - protected RouteBuilder createRouteBuilder() throws Exception { - return new RouteBuilder() { - @Override - public void configure() throws Exception { - from("direct:start") - .doTry() - .to("validator:org/apache/camel/itest/osgi/spring/validator/schema.xsd") - .to("mock:valid") - .doCatch(ValidationException.class) - .to("mock:invalid") - .doFinally() - .to("mock:finally") - .end(); - } - }; + public void testSendingCamelExchangeToEndpointResultsInValidApplicationEventAfterTheRefreshEvent() throws Exception { + MockEndpoint result = resolveMandatoryEndpoint("mock:result", MockEndpoint.class); + result.expectedMessageCount(2); + + template.sendBodyAndHeader(uri, expectedBody, "cheese", 123); + + result.assertIsSatisfied(); + + // lets test we receive the context refreshed event + Exchange exchange = result.getReceivedExchanges().get(0); + Object body = exchange.getIn().getBody(ContextRefreshedEvent.class); + log.info("Received body: " + body); + assertNotNull(body); + + // lets test we receive the camel event + exchange = result.getReceivedExchanges().get(1); + body = exchange.getIn().getBody(); + log.info("Received body: " + body); + CamelEvent event = assertIsInstanceOf(CamelEvent.class, body); + Object actualBody = event.getExchange().getIn().getBody(); + assertEquals("Received event body", expectedBody, actualBody); } } Copied: camel/trunk/tests/camel-itest-osgi/src/test/resources/org/apache/camel/itest/osgi/spring/event/CamelContext.xml (from r1000333, camel/trunk/tests/camel-itest-osgi/src/test/resources/org/apache/camel/itest/osgi/spring/bean/CamelContext.xml) URL: http://svn.apache.org/viewvc/camel/trunk/tests/camel-itest-osgi/src/test/resources/org/apache/camel/itest/osgi/spring/event/CamelContext.xml?p2=camel/trunk/tests/camel-itest-osgi/src/test/resources/org/apache/camel/itest/osgi/spring/event/CamelContext.xml&p1=camel/trunk/tests/camel-itest-osgi/src/test/resources/org/apache/camel/itest/osgi/spring/bean/CamelContext.xml&r1=1000333&r2=1000346&rev=1000346&view=diff ============================================================================== --- camel/trunk/tests/camel-itest-osgi/src/test/resources/org/apache/camel/itest/osgi/spring/bean/CamelContext.xml (original) +++ camel/trunk/tests/camel-itest-osgi/src/test/resources/org/apache/camel/itest/osgi/spring/event/CamelContext.xml Thu Sep 23 07:54:17 2010 @@ -23,12 +23,9 @@ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd"> - <bean id="foo" class="org.apache.camel.itest.osgi.core.bean.MyFooBean"/> - <camelContext xmlns="http://camel.apache.org/schema/spring"> <camel:route> - <camel:from uri="direct:start"/> - <camel:to uri="bean:foo"/> + <camel:from uri="spring-event:default"/> <camel:to uri="mock:result"/> </camel:route> </camelContext>