Skip to content

Commit 4a69db8

Browse files
committed
improve websocket close/terminate test
1 parent 0f4697b commit 4a69db8

1 file changed

Lines changed: 11 additions & 13 deletions

File tree

coverage-report/src/test/java/org/jooby/ws/WebSocketTerminateFeature.java

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,7 @@
22

33
import static org.junit.Assert.assertEquals;
44

5-
import java.util.ArrayList;
6-
import java.util.List;
7-
import java.util.concurrent.CountDownLatch;
8-
import java.util.concurrent.TimeUnit;
5+
import java.util.concurrent.atomic.AtomicInteger;
96

107
import org.jooby.test.ServerFeature;
118
import org.junit.After;
@@ -18,15 +15,14 @@
1815
import com.ning.http.client.ws.WebSocketTextListener;
1916
import com.ning.http.client.ws.WebSocketUpgradeHandler;
2017

21-
2218
public class WebSocketTerminateFeature extends ServerFeature {
2319

24-
private static final List<Integer> statusList = new ArrayList<>();
20+
private static AtomicInteger state = new AtomicInteger(0);
2521
{
2622
ws("/ws", ws -> {
2723

2824
ws.onClose(status -> {
29-
statusList.add(status.code());
25+
state.set(status.code());
3026
});
3127

3228
ws.terminate();
@@ -38,6 +34,7 @@ public class WebSocketTerminateFeature extends ServerFeature {
3834

3935
@Before
4036
public void before() {
37+
state.set(0);
4138
client = new AsyncHttpClient(new AsyncHttpClientConfig.Builder().build());
4239
}
4340

@@ -48,7 +45,8 @@ public void after() {
4845

4946
@Test
5047
public void terminate() throws Exception {
51-
CountDownLatch latch = new CountDownLatch(1);
48+
49+
assertEquals(0, state.get());
5250

5351
client.prepareGet(ws("ws").toString())
5452
.execute(new WebSocketUpgradeHandler.Builder().addWebSocketListener(
@@ -64,16 +62,16 @@ public void onOpen(final WebSocket websocket) {
6462

6563
@Override
6664
public void onClose(final WebSocket websocket) {
67-
latch.countDown();
6865
}
6966

7067
@Override
7168
public void onError(final Throwable t) {
7269
}
73-
}).build()).get();
74-
if (latch.await(1L, TimeUnit.SECONDS)) {
75-
assertEquals(new Integer(1006), statusList.get(0));
70+
}).build())
71+
.get();
72+
while (1006 != state.get()) {
73+
Thread.sleep(300L);
7674
}
77-
statusList.clear();
75+
assertEquals(1006, state.get());
7876
}
7977
}

0 commit comments

Comments
 (0)