You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2011/04/30 12:44:11 UTC
svn commit: r1098096 - in /camel/trunk/camel-core/src:
main/java/org/apache/camel/builder/
main/java/org/apache/camel/component/mock/
test/java/org/apache/camel/component/mock/
Author: davsclaus
Date: Sat Apr 30 10:44:10 2011
New Revision: 1098096
URL: http://svn.apache.org/viewvc?rev=1098096&view=rev
Log:
Added expectedExchangePattern to mock, to make it easier to check for expected MEPs when unit testing.
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java
camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ExpressionClauseSupport.java
camel/trunk/camel-core/src/main/java/org/apache/camel/component/mock/MockEndpoint.java
camel/trunk/camel-core/src/test/java/org/apache/camel/component/mock/MockEndpointTest.java
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java?rev=1098096&r1=1098095&r2=1098096&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java Sat Apr 30 10:44:10 2011
@@ -256,6 +256,25 @@ public final class ExpressionBuilder {
}
/**
+ * Returns an expression for the exchange pattern
+ *
+ * @see org.apache.camel.Exchange#getPattern()
+ * @return an expression object which will return the exchange pattern
+ */
+ public static Expression exchangePatternExpression() {
+ return new ExpressionAdapter() {
+ public Object evaluate(Exchange exchange) {
+ return exchange.getPattern();
+ }
+
+ @Override
+ public String toString() {
+ return "exchangePattern";
+ }
+ };
+ }
+
+ /**
* Returns an expression for an exception set on the exchange
*
* @see Exchange#getException()
@@ -276,8 +295,8 @@ public final class ExpressionBuilder {
return "exchangeException";
}
};
- }
-
+ }
+
/**
* Returns an expression for an exception set on the exchange
* <p/>
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ExpressionClauseSupport.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ExpressionClauseSupport.java?rev=1098096&r1=1098095&r2=1098096&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ExpressionClauseSupport.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ExpressionClauseSupport.java Sat Apr 30 10:44:10 2011
@@ -19,6 +19,7 @@ package org.apache.camel.builder;
import java.util.Map;
import org.apache.camel.CamelContext;
+import org.apache.camel.ExchangePattern;
import org.apache.camel.Expression;
import org.apache.camel.builder.xml.Namespaces;
import org.apache.camel.model.language.ExpressionDefinition;
@@ -143,6 +144,13 @@ public class ExpressionClauseSupport<T>
}
/**
+ * An expression of the exchange pattern
+ */
+ public T exchangePattern() {
+ return expression(ExpressionBuilder.exchangePatternExpression());
+ }
+
+ /**
* An expression of an exchange property of the given name
*/
public T property(String name) {
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/component/mock/MockEndpoint.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/component/mock/MockEndpoint.java?rev=1098096&r1=1098095&r2=1098096&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/component/mock/MockEndpoint.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/component/mock/MockEndpoint.java Sat Apr 30 10:44:10 2011
@@ -36,6 +36,7 @@ import org.apache.camel.Component;
import org.apache.camel.Consumer;
import org.apache.camel.Endpoint;
import org.apache.camel.Exchange;
+import org.apache.camel.ExchangePattern;
import org.apache.camel.Expression;
import org.apache.camel.Handler;
import org.apache.camel.Message;
@@ -666,6 +667,17 @@ public class MockEndpoint extends Defaul
}
/**
+ * Adds an expectation that messages received should have the given exchange pattern
+ */
+ public void expectedExchangePattern(final ExchangePattern exchangePattern) {
+ expectedMessagesMatches(new Predicate() {
+ public boolean matches(Exchange exchange) {
+ return exchange.getPattern().equals(exchangePattern);
+ }
+ });
+ }
+
+ /**
* Adds an expectation that messages received should have ascending values
* of the given expression such as a user generated counter value
*/
Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/component/mock/MockEndpointTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/component/mock/MockEndpointTest.java?rev=1098096&r1=1098095&r2=1098096&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/component/mock/MockEndpointTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/component/mock/MockEndpointTest.java Sat Apr 30 10:44:10 2011
@@ -22,6 +22,7 @@ import java.util.concurrent.atomic.Atomi
import org.apache.camel.ContextTestSupport;
import org.apache.camel.Exchange;
+import org.apache.camel.ExchangePattern;
import org.apache.camel.Processor;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.builder.xml.XPathBuilder;
@@ -537,6 +538,37 @@ public class MockEndpointTest extends Co
}
}
+ public void testExchangePattern() throws Exception {
+ MockEndpoint mock = getMockEndpoint("mock:result");
+ mock.expectedMessageCount(2);
+ mock.message(0).exchangePattern().isEqualTo(ExchangePattern.InOnly);
+ mock.message(1).exchangePattern().isEqualTo(ExchangePattern.InOut);
+
+ template.sendBody("direct:a", "Hello World");
+ template.requestBody("direct:a", "Bye World");
+
+ assertMockEndpointsSatisfied();
+ }
+
+ public void testExpectedExchangePattern() throws Exception {
+ MockEndpoint mock = getMockEndpoint("mock:result");
+ mock.expectedMessageCount(1);
+ mock.expectedExchangePattern(ExchangePattern.InOnly);
+
+ template.sendBody("direct:a", "Hello World");
+
+ assertMockEndpointsSatisfied();
+
+ // reset and try with InOut this time
+ resetMocks();
+ mock.expectedMessageCount(1);
+ mock.expectedExchangePattern(ExchangePattern.InOut);
+
+ template.requestBody("direct:a", "Bye World");
+
+ assertMockEndpointsSatisfied();
+ }
+
protected void sendMessages(int... counters) {
for (int counter : counters) {
template.sendBodyAndHeader("direct:a", createTestMessage(counter), "counter", counter);