Author: davsclaus
Date: Sat Apr 30 12:04:32 2011
New Revision: 1098103

URL: http://svn.apache.org/viewvc?rev=1098103&view=rev
Log:
CAMEL-463: scala DSL to and --> now support specifying an exchange pattern.

Added:
    
camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/ExchangePatternTest.scala
      - copied, changed from r1098092, 
camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/BasicRouteBuilderTest.scala
Modified:
    
camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SAbstractDefinition.scala
    
camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SRouteDefinition.scala

Modified: 
camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SAbstractDefinition.scala
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SAbstractDefinition.scala?rev=1098103&r1=1098102&r2=1098103&view=diff
==============================================================================
--- 
camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SAbstractDefinition.scala
 (original)
+++ 
camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SAbstractDefinition.scala
 Sat Apr 30 12:04:32 2011
@@ -140,7 +140,9 @@ abstract class SAbstractDefinition[P <: 
   def wiretap(uri: String) = wrap(target.wireTap(uri))
   def wiretap(uri: String, expression: Exchange => Any) = 
wrap(target.wireTap(uri).newExchangeBody(expression))
 
+  def -->(pattern: ExchangePattern, uri: String) = wrap(target.to(pattern, 
uri))
   def -->(uris: String*) = to(uris:_*)
+  def to(pattern: ExchangePattern, uri: String) = wrap(target.to(pattern, uri))
   def to(uris: String*) = {
     uris.length match {
       case 1 => target.to(uris(0))

Modified: 
camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SRouteDefinition.scala
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SRouteDefinition.scala?rev=1098103&r1=1098102&r2=1098103&view=diff
==============================================================================
--- 
camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SRouteDefinition.scala
 (original)
+++ 
camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SRouteDefinition.scala
 Sat Apr 30 12:04:32 2011
@@ -24,7 +24,7 @@ case class SRouteDefinition(override val
   def ==> (block: => Unit) : SRouteDefinition = 
this.apply(block).asInstanceOf[SRouteDefinition]
 
   def ::(id: String) : SRouteDefinition = {
-    target.setId(id)
+    target.routeId(id)
     this
   }
 

Copied: 
camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/ExchangePatternTest.scala
 (from r1098092, 
camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/BasicRouteBuilderTest.scala)
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/ExchangePatternTest.scala?p2=camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/ExchangePatternTest.scala&p1=camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/BasicRouteBuilderTest.scala&r1=1098092&r2=1098103&rev=1098103&view=diff
==============================================================================
--- 
camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/BasicRouteBuilderTest.scala
 (original)
+++ 
camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/ExchangePatternTest.scala
 Sat Apr 30 12:04:32 2011
@@ -18,27 +18,71 @@ package org.apache.camel
 package scala.dsl
 
 import builder.RouteBuilder
+import ExchangePattern.{InOnly, InOut}
 
-class BasicRouteBuilderTest extends ScalaTestSupport {
+class ExchangePatternTest extends ScalaTestSupport {
 
-  def testBasicRouteArrowSyntax() = assertBasicRoute("direct:a", "mock:a")
-  def testBasicRouteTextSyntax() = assertBasicRoute("direct:b", "mock:b")
+  def testInOnly() = {
+    getMockEndpoint("mock:a").expectedMessageCount(1)
+    getMockEndpoint("mock:a").expectedExchangePattern(InOnly)
+    getMockEndpoint("mock:result").expectedMessageCount(1)
+    getMockEndpoint("mock:result").expectedExchangePattern(InOnly)
 
-  def assertBasicRoute(from: String, to: String) = {
-    to expect {
-      _.expectedMessageCount(1)
-    }
-    from ! "<hello/>"
-    to assert
+    template.sendBody("direct:a", "Hello World")
+
+    assertMockEndpointsSatisfied
+  }
+
+  def testRequestInOnly() = {
+    getMockEndpoint("mock:a").expectedMessageCount(1)
+    getMockEndpoint("mock:a").expectedExchangePattern(InOnly)
+    getMockEndpoint("mock:result").expectedMessageCount(1)
+    getMockEndpoint("mock:result").expectedExchangePattern(InOnly)
+
+    template.requestBody("direct:a", "Hello World")
+
+    assertMockEndpointsSatisfied
+  }
+
+  def testInOut() = {
+    getMockEndpoint("mock:b").expectedMessageCount(1)
+    getMockEndpoint("mock:b").expectedExchangePattern(InOut)
+    getMockEndpoint("mock:result").expectedMessageCount(1)
+    getMockEndpoint("mock:result").expectedExchangePattern(InOut)
+
+    template.sendBody("direct:b", "Hello World")
+
+    assertMockEndpointsSatisfied
+  }
+
+  def testRequstInOut() = {
+    getMockEndpoint("mock:b").expectedMessageCount(1)
+    getMockEndpoint("mock:b").expectedExchangePattern(InOut)
+    getMockEndpoint("mock:result").expectedMessageCount(1)
+    getMockEndpoint("mock:result").expectedExchangePattern(InOut)
+
+    template.requestBody("direct:b", "Hello World")
+
+    assertMockEndpointsSatisfied
+  }
+
+  def testMixed() = {
+    getMockEndpoint("mock:c").expectedMessageCount(1)
+    getMockEndpoint("mock:c").expectedExchangePattern(InOut)
+    getMockEndpoint("mock:result").expectedMessageCount(1)
+    getMockEndpoint("mock:result").expectedExchangePattern(InOnly)
+
+    template.sendBody("direct:c", "Hello World")
+
+    assertMockEndpointsSatisfied
   }
 
   val builder = new MyRouteBuilder
   
-  //START SNIPPET: basic
   class MyRouteBuilder extends RouteBuilder {
-    "direct:a" --> "mock:a"
-    "direct:b" to "mock:b"      
+    "direct:a" --> (InOnly, "mock:a") --> "mock:result"
+    "direct:b" --> (InOut, "mock:b") --> "mock:result"
+    "direct:c" to (InOut, "mock:c") to (InOnly, "mock:result")
   }
-  //END SNIPPET: basic
-  
+
 }


Reply via email to