|
Play Framework/Scala example source code file (WebSocketJava8Test.java)
The WebSocketJava8Test.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 WebSocketJava8Test { @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 = WebSocket.whenReady((in, out) -> { ready.countDown(); in.onMessage(m -> message.countDown()); in.onClose(() -> 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(); } } Other Play Framework source code examplesHere is a short list of links related to this Play Framework WebSocketJava8Test.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.