Author: davsclaus Date: Fri Oct 2 12:40:50 2009 New Revision: 820990 URL: http://svn.apache.org/viewvc?rev=820990&view=rev Log: MR-187: Added more unit tests.
Added: camel/trunk/camel-core/src/test/java/org/apache/camel/component/seda/SedaWaitForTaskAsPropertyTest.java - copied, changed from r820639, camel/trunk/camel-core/src/test/java/org/apache/camel/component/seda/SedaWaitForTaskIfReplyExpectedTest.java Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/language/bean/BeanExpression.java camel/trunk/camel-core/src/main/java/org/apache/camel/language/bean/RuntimeBeanExpressionException.java camel/trunk/camel-core/src/test/java/org/apache/camel/component/log/LogFormatterTest.java camel/trunk/camel-core/src/test/java/org/apache/camel/component/seda/SedaEndpointTest.java camel/trunk/camel-core/src/test/java/org/apache/camel/language/BeanTest.java camel/trunk/camel-core/src/test/java/org/apache/camel/language/HeaderTest.java camel/trunk/camel-core/src/test/java/org/apache/camel/language/PropertyTest.java camel/trunk/camel-core/src/test/java/org/apache/camel/language/SimpleTest.java camel/trunk/camel-core/src/test/java/org/apache/camel/language/XPathTest.java Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/language/bean/BeanExpression.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/language/bean/BeanExpression.java?rev=820990&r1=820989&r2=820990&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/language/bean/BeanExpression.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/language/bean/BeanExpression.java Fri Oct 2 12:40:50 2009 @@ -51,10 +51,6 @@ return "BeanExpression[bean:" + (bean == null ? beanName : bean) + " method: " + method + "]"; } - protected String assertionFailureMessage(Exchange exchange) { - return "bean: " + beanName + " method: " + method; - } - public Object evaluate(Exchange exchange) { // either use registry lookup or a constant bean BeanHolder holder; @@ -92,6 +88,4 @@ return ObjectHelper.evaluateValuePredicate(value); } - public void assertMatches(String text, Exchange exchange) throws AssertionError { - } } Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/language/bean/RuntimeBeanExpressionException.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/language/bean/RuntimeBeanExpressionException.java?rev=820990&r1=820989&r2=820990&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/language/bean/RuntimeBeanExpressionException.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/language/bean/RuntimeBeanExpressionException.java Fri Oct 2 12:40:50 2009 @@ -26,18 +26,18 @@ */ public class RuntimeBeanExpressionException extends RuntimeExpressionException { private final Exchange exchange; - private final String bean; + private final String beanName; private final String method; - public RuntimeBeanExpressionException(Exchange exchange, String bean, String method, Throwable e) { - super("Failed to invoke method: " + method + " on " + bean + " due to: " + e, e); + public RuntimeBeanExpressionException(Exchange exchange, String beanName, String method, Throwable e) { + super("Failed to invoke method: " + method + " on " + beanName + " due to: " + e, e); this.exchange = exchange; - this.bean = bean; + this.beanName = beanName; this.method = method; } - public String getBean() { - return bean; + public String getBeanName() { + return beanName; } public Exchange getExchange() { Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/component/log/LogFormatterTest.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/component/log/LogFormatterTest.java?rev=820990&r1=820989&r2=820990&view=diff ============================================================================== --- camel/trunk/camel-core/src/test/java/org/apache/camel/component/log/LogFormatterTest.java (original) +++ camel/trunk/camel-core/src/test/java/org/apache/camel/component/log/LogFormatterTest.java Fri Oct 2 12:40:50 2009 @@ -37,6 +37,9 @@ template.sendBody("log:org.apache.camel.TEST?showBodyType=true", "Hello World"); template.sendBody("log:org.apache.camel.TEST?showBody=true", "Hello World"); template.sendBody("log:org.apache.camel.TEST?showOut=true", "Hello World"); + template.sendBody("log:org.apache.camel.TEST?showOut=true&showHeaders=true", "Hello World"); + template.sendBody("log:org.apache.camel.TEST?showOut=true&showBodyType=true", "Hello World"); + template.sendBody("log:org.apache.camel.TEST?showOut=true&showBody=true", "Hello World"); template.sendBody("log:org.apache.camel.TEST?showAll=true", "Hello World"); } @@ -104,6 +107,18 @@ producer.stop(); } + public void testSendCaughtExchangeWithExceptionAndMultiline() throws Exception { + Endpoint endpoint = resolveMandatoryEndpoint("log:org.apache.camel.TEST?showCaughtException=true&multiline=true"); + Exchange exchange = endpoint.createExchange(); + exchange.getIn().setBody("Hello World"); + exchange.setProperty(Exchange.EXCEPTION_CAUGHT, new IllegalArgumentException("I am caught")); + + Producer producer = endpoint.createProducer(); + producer.start(); + producer.process(exchange); + producer.stop(); + } + public void testSendExchangeWithExceptionAndStackTrace() throws Exception { Endpoint endpoint = resolveMandatoryEndpoint("log:org.apache.camel.TEST?showException=true&showStackTrace=true"); Exchange exchange = endpoint.createExchange(); @@ -128,4 +143,21 @@ producer.stop(); } + public void testConfiguration() { + LogFormatter formatter = new LogFormatter(); + + assertFalse(formatter.isShowExchangeId()); + assertFalse(formatter.isShowProperties()); + assertFalse(formatter.isShowHeaders()); + assertTrue(formatter.isShowBodyType()); + assertTrue(formatter.isShowBody()); + assertFalse(formatter.isShowOut()); + assertFalse(formatter.isShowException()); + assertFalse(formatter.isShowCaughtException()); + assertFalse(formatter.isShowStackTrace()); + assertFalse(formatter.isShowAll()); + assertFalse(formatter.isMultiline()); + assertEquals(0, formatter.getMaxChars()); + } + } Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/component/seda/SedaEndpointTest.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/component/seda/SedaEndpointTest.java?rev=820990&r1=820989&r2=820990&view=diff ============================================================================== --- camel/trunk/camel-core/src/test/java/org/apache/camel/component/seda/SedaEndpointTest.java (original) +++ camel/trunk/camel-core/src/test/java/org/apache/camel/component/seda/SedaEndpointTest.java Fri Oct 2 12:40:50 2009 @@ -81,6 +81,8 @@ public void testSedaEndpointSetQueue() throws Exception { SedaEndpoint seda = new SedaEndpoint(); assertNotNull(seda); + assertNotNull(seda.getQueue()); + // overwrite with a new queue seda.setQueue(new ArrayBlockingQueue<Exchange>(1000)); seda.setConcurrentConsumers(2); @@ -102,4 +104,17 @@ assertEquals(0, seda.getExchanges().size()); } + + public void testSedaConsumer() throws Exception { + SedaEndpoint seda = context.getEndpoint("seda://foo", SedaEndpoint.class); + Consumer consumer = (SedaConsumer) seda.createConsumer(new Processor() { + public void process(Exchange exchange) throws Exception { + // do nothing + } + }); + + assertSame(seda, consumer.getEndpoint()); + assertNotNull(consumer.toString()); + } + } Copied: camel/trunk/camel-core/src/test/java/org/apache/camel/component/seda/SedaWaitForTaskAsPropertyTest.java (from r820639, camel/trunk/camel-core/src/test/java/org/apache/camel/component/seda/SedaWaitForTaskIfReplyExpectedTest.java) URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/component/seda/SedaWaitForTaskAsPropertyTest.java?p2=camel/trunk/camel-core/src/test/java/org/apache/camel/component/seda/SedaWaitForTaskAsPropertyTest.java&p1=camel/trunk/camel-core/src/test/java/org/apache/camel/component/seda/SedaWaitForTaskIfReplyExpectedTest.java&r1=820639&r2=820990&rev=820990&view=diff ============================================================================== --- camel/trunk/camel-core/src/test/java/org/apache/camel/component/seda/SedaWaitForTaskIfReplyExpectedTest.java (original) +++ camel/trunk/camel-core/src/test/java/org/apache/camel/component/seda/SedaWaitForTaskAsPropertyTest.java Fri Oct 2 12:40:50 2009 @@ -20,18 +20,25 @@ import org.apache.camel.Exchange; import org.apache.camel.ExchangePattern; import org.apache.camel.Processor; +import org.apache.camel.WaitForTaskToComplete; import org.apache.camel.builder.RouteBuilder; /** * @version $Revision$ */ -public class SedaWaitForTaskIfReplyExpectedTest extends ContextTestSupport { +public class SedaWaitForTaskAsPropertyTest extends ContextTestSupport { public void testInOut() throws Exception { getMockEndpoint("mock:result").expectedBodiesReceived("Bye World"); - String out = template.requestBody("direct:start", "Hello World", String.class); - assertEquals("Bye World", out); + Exchange out = template.send("direct:start", new Processor() { + public void process(Exchange exchange) throws Exception { + exchange.getIn().setBody("Hello World"); + exchange.setPattern(ExchangePattern.InOut); + exchange.setProperty(Exchange.ASYNC_WAIT, WaitForTaskToComplete.IfReplyExpected); + } + }); + assertEquals("Bye World", out.getOut().getBody()); assertMockEndpointsSatisfied(); } @@ -43,6 +50,7 @@ public void process(Exchange exchange) throws Exception { exchange.getIn().setBody("Hello World"); exchange.setPattern(ExchangePattern.InOnly); + exchange.setProperty(Exchange.ASYNC_WAIT, WaitForTaskToComplete.IfReplyExpected); } }); // we do not expecy a reply and thus do no wait so we just get our own input back @@ -57,9 +65,9 @@ return new RouteBuilder() { @Override public void configure() throws Exception { - from("direct:start").to("seda:foo?waitForTaskToComplete=IfReplyExpected"); + from("direct:start").to("seda:foo"); - from("seda:foo?waitForTaskToComplete=IfReplyExpected").transform(constant("Bye World")).to("mock:result"); + from("seda:foo").transform(constant("Bye World")).to("mock:result"); } }; } Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/language/BeanTest.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/language/BeanTest.java?rev=820990&r1=820989&r2=820990&view=diff ============================================================================== --- camel/trunk/camel-core/src/test/java/org/apache/camel/language/BeanTest.java (original) +++ camel/trunk/camel-core/src/test/java/org/apache/camel/language/BeanTest.java Fri Oct 2 12:40:50 2009 @@ -24,6 +24,7 @@ import org.apache.camel.LanguageTestSupport; import org.apache.camel.Message; import org.apache.camel.language.bean.BeanLanguage; +import org.apache.camel.language.bean.RuntimeBeanExpressionException; /** * @version $Revision$ @@ -65,6 +66,34 @@ assertEquals("Hello Claus", result); } + public void testNoMethod() throws Exception { + MyUser user = new MyUser(); + Expression exp = BeanLanguage.bean(user, "unknown"); + + Exchange exchange = createExchangeWithBody("Claus"); + + try { + exp.evaluate(exchange, Object.class); + } catch (RuntimeBeanExpressionException e) { + assertNull(e.getBeanName()); + assertSame(exchange, e.getExchange()); + assertEquals("unknown", e.getMethod()); + } + } + + public void testNoMethodBeanLookup() throws Exception { + Expression exp = BeanLanguage.bean("foo.cake"); + Exchange exchange = createExchangeWithBody("Claus"); + + try { + exp.evaluate(exchange, Object.class); + } catch (RuntimeBeanExpressionException e) { + assertEquals("foo", e.getBeanName()); + assertSame(exchange, e.getExchange()); + assertEquals("cake", e.getMethod()); + } + } + protected String getLanguageName() { return "bean"; } Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/language/HeaderTest.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/language/HeaderTest.java?rev=820990&r1=820989&r2=820990&view=diff ============================================================================== --- camel/trunk/camel-core/src/test/java/org/apache/camel/language/HeaderTest.java (original) +++ camel/trunk/camel-core/src/test/java/org/apache/camel/language/HeaderTest.java Fri Oct 2 12:40:50 2009 @@ -17,6 +17,7 @@ package org.apache.camel.language; import org.apache.camel.LanguageTestSupport; +import org.apache.camel.language.header.HeaderLanguage; public class HeaderTest extends LanguageTestSupport { @@ -28,6 +29,11 @@ assertPredicate("foo"); } + public void testSingleton() { + HeaderLanguage prop = new HeaderLanguage(); + assertTrue(prop.isSingleton()); + } + protected String getLanguageName() { return "header"; } Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/language/PropertyTest.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/language/PropertyTest.java?rev=820990&r1=820989&r2=820990&view=diff ============================================================================== --- camel/trunk/camel-core/src/test/java/org/apache/camel/language/PropertyTest.java (original) +++ camel/trunk/camel-core/src/test/java/org/apache/camel/language/PropertyTest.java Fri Oct 2 12:40:50 2009 @@ -18,6 +18,7 @@ import org.apache.camel.Exchange; import org.apache.camel.LanguageTestSupport; +import org.apache.camel.language.property.PropertyLanguage; public class PropertyTest extends LanguageTestSupport { @@ -33,6 +34,11 @@ return "property"; } + public void testSingleton() { + PropertyLanguage prop = new PropertyLanguage(); + assertTrue(prop.isSingleton()); + } + @Override protected void populateExchange(Exchange exchange) { super.populateExchange(exchange); Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/language/SimpleTest.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/language/SimpleTest.java?rev=820990&r1=820989&r2=820990&view=diff ============================================================================== --- camel/trunk/camel-core/src/test/java/org/apache/camel/language/SimpleTest.java (original) +++ camel/trunk/camel-core/src/test/java/org/apache/camel/language/SimpleTest.java Fri Oct 2 12:40:50 2009 @@ -16,6 +16,10 @@ */ package org.apache.camel.language; +import java.util.Date; +import java.util.Calendar; +import java.util.GregorianCalendar; + import org.apache.camel.ExpressionIllegalSyntaxException; import org.apache.camel.LanguageTestSupport; import org.apache.camel.language.simple.SimpleLanguage; @@ -34,7 +38,42 @@ assertExpression("body", "<hello id='m123'>world!</hello>"); assertExpression("in.body", "<hello id='m123'>world!</hello>"); assertExpression("in.header.foo", "abc"); + assertExpression("in.headers.foo", "abc"); assertExpression("header.foo", "abc"); + assertExpression("headers.foo", "abc"); + } + + public void testSimpleOutExpressions() throws Exception { + exchange.getOut().setBody("Bye World"); + exchange.getOut().setHeader("quote", "Camel rocks"); + assertExpression("out.body", "Bye World"); + assertExpression("out.header.quote", "Camel rocks"); + assertExpression("out.headers.quote", "Camel rocks"); + } + + public void testSimplePropertyExpressions() throws Exception { + exchange.setProperty("medal", "gold"); + assertExpression("property.medal", "gold"); + } + + public void testSimpleSystemPropertyExpressions() throws Exception { + System.setProperty("who", "I was here"); + assertExpression("sys.who", "I was here"); + } + + public void testDateExpressions() throws Exception { + Calendar cal = GregorianCalendar.getInstance(); + cal.set(1974, Calendar.APRIL, 20); + exchange.getIn().setHeader("birthday", cal.getTime()); + + assertExpression("date:header.birthday:yyyyMMdd", "19740420"); + + try { + assertExpression("date:yyyyMMdd", "19740420"); + fail("Should thrown an exception"); + } catch (ExpressionIllegalSyntaxException e) { + // expected + } } public void testLanguagesInContext() throws Exception { Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/language/XPathTest.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/language/XPathTest.java?rev=820990&r1=820989&r2=820990&view=diff ============================================================================== --- camel/trunk/camel-core/src/test/java/org/apache/camel/language/XPathTest.java (original) +++ camel/trunk/camel-core/src/test/java/org/apache/camel/language/XPathTest.java Fri Oct 2 12:40:50 2009 @@ -53,6 +53,7 @@ protected Language assertResolveLanguage(String languageName) { XPathLanguage answer = new XPathLanguage(); answer.setResultType(XPathConstants.STRING); + assertEquals(XPathConstants.STRING, answer.getResultType()); return answer; } }