Author: davsclaus
Date: Mon Mar  5 15:56:38 2012
New Revision: 1297103

URL: http://svn.apache.org/viewvc?rev=1297103&view=rev
Log:
CAMEL-4498: Use AHC client for websocket unit tests.

Removed:
    
camel/trunk/components/camel-websocket/src/test/java/org/apache/camel/component/websocket/WebsocketClientCamelRoute2Test.java
Modified:
    camel/trunk/components/camel-websocket/pom.xml
    
camel/trunk/components/camel-websocket/src/test/java/org/apache/camel/component/websocket/WebsocketClientCamelRouteTest.java
    camel/trunk/components/camel-websocket/src/test/resources/log4j.properties

Modified: camel/trunk/components/camel-websocket/pom.xml
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-websocket/pom.xml?rev=1297103&r1=1297102&r2=1297103&view=diff
==============================================================================
--- camel/trunk/components/camel-websocket/pom.xml (original)
+++ camel/trunk/components/camel-websocket/pom.xml Mon Mar  5 15:56:38 2012
@@ -43,14 +43,6 @@
         </camel.osgi.import.pkg>
     </properties>
 
-    <repositories>
-        <repository>
-            <id>fusesource.m2</id>
-            <name>Fusesource Dependency Repository</name>
-            <url>http://repo.fusesource.com/maven2</url>
-        </repository>
-    </repositories>
-
     <dependencies>
         <!-- Camel -->
         <dependency>
@@ -85,9 +77,9 @@
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>de.roderick</groupId>
-            <artifactId>weberknecht</artifactId>
-            <version>0.1.1</version>
+            <groupId>com.ning</groupId>
+            <artifactId>async-http-client</artifactId>
+            <version>${ahc-version}</version>
             <scope>test</scope>
         </dependency>
         <!-- logging -->

Modified: 
camel/trunk/components/camel-websocket/src/test/java/org/apache/camel/component/websocket/WebsocketClientCamelRouteTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-websocket/src/test/java/org/apache/camel/component/websocket/WebsocketClientCamelRouteTest.java?rev=1297103&r1=1297102&r2=1297103&view=diff
==============================================================================
--- 
camel/trunk/components/camel-websocket/src/test/java/org/apache/camel/component/websocket/WebsocketClientCamelRouteTest.java
 (original)
+++ 
camel/trunk/components/camel-websocket/src/test/java/org/apache/camel/component/websocket/WebsocketClientCamelRouteTest.java
 Mon Mar  5 15:56:38 2012
@@ -16,45 +16,70 @@
  */
 package org.apache.camel.component.websocket;
 
-import java.net.URI;
-
-import de.roderick.weberknecht.WebSocketConnection;
-import de.roderick.weberknecht.WebSocketEventHandler;
-import de.roderick.weberknecht.WebSocketMessage;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
+import com.ning.http.client.AsyncHttpClient;
+import com.ning.http.client.websocket.WebSocket;
+import com.ning.http.client.websocket.WebSocketTextListener;
+import com.ning.http.client.websocket.WebSocketUpgradeHandler;
 import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.test.CamelTestSupport;
+import org.apache.camel.test.junit4.CamelTestSupport;
 import org.junit.Test;
 
 public class WebsocketClientCamelRouteTest extends CamelTestSupport {
 
+    private static List<String> received = new ArrayList<String>();
+    private static CountDownLatch latch = new CountDownLatch(10);
+
     @Test
     public void testWSHttpCall() throws Exception {
-        WebSocketConnection webSocketConnection = new WebSocketConnection(new 
URI("ws://127.0.0.1:9292/test"));
-
-        // Register Event Handlers
-        webSocketConnection.setEventHandler(new WebSocketEventHandler() {
-            public void onOpen() {
-                log.info("--open");
-            }
-
-            public void onMessage(WebSocketMessage message) {
-                log.info("--received message: " + message.getText());
-            }
-
-            public void onClose() {
-                log.info("--close");
-            }
-        });
-
-        // Establish WebSocket Connection
-        webSocketConnection.connect();
-        log.info(">>> Connection established.");
+        AsyncHttpClient c = new AsyncHttpClient();
 
-        // Send Data
-        webSocketConnection.send("Hello from WS Client");
+        WebSocket websocket = c.prepareGet("ws://127.0.0.1:9292/test").execute(
+            new WebSocketUpgradeHandler.Builder()
+                .addWebSocketListener(new WebSocketTextListener() {
+                    @Override
+                    public void onMessage(String message) {
+                        received.add(message);
+                        log.info("received --> " + message);
+                        latch.countDown();
+                    }
+
+                    @Override
+                    public void onFragment(String fragment, boolean last) {
+                    }
+
+                    @Override
+                    public void onOpen(WebSocket websocket) {
+                    }
+
+                    @Override
+                    public void onClose(WebSocket websocket) {
+                    }
+
+                    @Override
+                    public void onError(Throwable t) {
+                        t.printStackTrace();
+                    }
+                }).build()).get();
+
+        getMockEndpoint("mock:client").expectedBodiesReceived("Hello from WS 
client");
+
+        websocket.sendTextMessage("Hello from WS client");
+        assertTrue(latch.await(10, TimeUnit.SECONDS));
+
+        assertMockEndpointsSatisfied();
+
+        assertEquals(10, received.size());
+        for (int i = 0; i < 10; i++) {
+            assertEquals(">> Welcome on board!", received.get(i));
+        }
 
-        // Close WebSocket Connection
-        webSocketConnection.close();
+        websocket.close();
+        c.close();
     }
 
     @Override
@@ -62,10 +87,11 @@ public class WebsocketClientCamelRouteTe
         return new RouteBuilder() {
             public void configure() {
                 from("websocket://test")
-                    .log(">>> Message received from WebSocket Client : 
${body}")
-                    .loop(10)
-                        .setBody().constant(">> Welcome on board!")
-                        .to("websocket://test");
+                        .log(">>> Message received from WebSocket Client : 
${body}")
+                        .to("mock:client")
+                        .loop(10)
+                            .setBody().constant(">> Welcome on board!")
+                            .to("websocket://test");
             }
         };
     }

Modified: 
camel/trunk/components/camel-websocket/src/test/resources/log4j.properties
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-websocket/src/test/resources/log4j.properties?rev=1297103&r1=1297102&r2=1297103&view=diff
==============================================================================
--- camel/trunk/components/camel-websocket/src/test/resources/log4j.properties 
(original)
+++ camel/trunk/components/camel-websocket/src/test/resources/log4j.properties 
Mon Mar  5 15:56:38 2012
@@ -23,6 +23,7 @@ log4j.rootLogger=INFO, file
 # uncomment the following line to turn on Camel debugging
 #log4j.logger.org.apache.camel.component.websocket=DEBUG
 #log4j.logger.org.eclipse.jetty.websocket=DEBUG
+#log4j.logger.com.ning.http.client=DEBUG
 
 
 # CONSOLE appender not used by default
@@ -35,4 +36,4 @@ log4j.appender.out.layout.ConversionPatt
 log4j.appender.file=org.apache.log4j.FileAppender
 log4j.appender.file.layout=org.apache.log4j.PatternLayout
 log4j.appender.file.layout.ConversionPattern=%d [%-15.15t] %-5p %-30.30c{1} - 
%m%n
-log4j.appender.file.file=target/camel-netty-test.log
\ No newline at end of file
+log4j.appender.file.file=target/camel-websocket-test.log
\ No newline at end of file


Reply via email to