|
Play Framework/Scala example source code file (WebSocketTest.java)
The WebSocketTest.java Play Framework example source code/* * Copyright (C) 2009-2013 Typesafe Inc. <http://www.typesafe.com> */ package play.mvc; import java.util.concurrent.CountDownLatch; import org.junit.Test; import play.api.libs.iteratee.TestChannel; import play.libs.F; import static java.util.concurrent.TimeUnit.SECONDS; import static org.junit.Assert.assertTrue; public class WebSocketTest { @Test public void testWebSocket() throws Throwable { final CountDownLatch ready = new CountDownLatch(1); final CountDownLatch message = new CountDownLatch(1); final CountDownLatch close = new CountDownLatch(1); final TestChannel<String> testChannel = new TestChannel<String>(); final WebSocket.Out<String> wsOut = new WebSocket.Out<String>() { @Override public void write(String frame) { testChannel.push(frame); } @Override public void close() { testChannel.eofAndEnd(); } }; final WebSocket.In<String> wsIn = new WebSocket.In<String>(); WebSocket<String> webSocket = new WebSocket<String>() { @Override public void onReady(WebSocket.In<String> in, WebSocket.Out<String> out) { ready.countDown(); in.onMessage(new F.Callback<String>() { @Override public void invoke(String m) { message.countDown(); } }); in.onClose(new F.Callback0() { @Override public void invoke() { close.countDown(); } }); out.write("message"); out.close(); } }; webSocket.onReady(wsIn, wsOut); assertTrue("WebSocket.onReady callback was not invoked", ready.await(1, SECONDS)); for (F.Callback<String> callback : wsIn.callbacks) { callback.invoke("message"); } assertTrue("WebSocket.In.onMessage callback was not invoked", message.await(1, SECONDS)); for (F.Callback0 callback : wsIn.closeCallbacks) { callback.invoke(); } assertTrue("WebSocket.In.onClose callback was not invoked", close.await(1, SECONDS)); testChannel.expect("message"); testChannel.expectEOF(); testChannel.expectEnd(); testChannel.expectEmpty(); } @Test public void testWhenReadyFactory() throws Exception { final CountDownLatch ready = new CountDownLatch(1); WebSocket<String> webSocket = WebSocket.whenReady(new F.Callback2<WebSocket.In<String>, WebSocket.Out<String>>() { @Override public void invoke(WebSocket.In<String> in, WebSocket.Out<String> out) { ready.countDown(); } }); webSocket.onReady(null, null); assertTrue("WebSocket.onReady callback was not invoked", ready.await(1, SECONDS)); } } Other Play Framework source code examplesHere is a short list of links related to this Play Framework WebSocketTest.java source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.