Skip to content

Commit f2848f6

Browse files
committed
Adding a new test and removing redundant files
1 parent cd7d6cd commit f2848f6

File tree

7 files changed

+92
-216
lines changed

7 files changed

+92
-216
lines changed

websocket/encoder-client/src/main/java/org/javaee7/websocket/encoder/client/MyClient.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
package org.javaee7.websocket.encoder.client;
4141

4242
import java.io.IOException;
43+
import java.util.concurrent.CountDownLatch;
4344
import java.util.logging.Level;
4445
import java.util.logging.Logger;
4546
import javax.websocket.ClientEndpoint;
@@ -55,26 +56,27 @@
5556
@ClientEndpoint(encoders = {MyMessageEncoder.class},
5657
decoders={MyMessageDecoder.class})
5758
public class MyClient {
59+
public static CountDownLatch latch= new CountDownLatch(3);
60+
5861
@OnOpen
5962
public void onOpen(Session session) {
6063
System.out.println("Connected to endpoint: " + session.getBasicRemote());
6164
try {
62-
MyMessage message = new MyMessage("{ \"foo\" : \"bar\"}");
63-
// MyMessage message = new MyMessage("{ foo : \"bar\"}");
65+
MyMessage message = new MyMessage("{\"apple\" : \"red\", \"banana\": \"yellow\"}");
6466
session.getBasicRemote().sendObject(message);
6567
} catch (IOException | EncodeException ex) {
6668
Logger.getLogger(MyClient.class.getName()).log(Level.SEVERE, null, ex);
6769
}
6870
}
6971

7072
@OnMessage
71-
public void processMessage(MyMessage message) {
72-
System.out.println("Received message in client: " + message);
73+
public MyMessage processMessage(MyMessage message) {
74+
latch.countDown();
75+
return message;
7376
}
7477

7578
@OnError
7679
public void onError(Throwable t) {
77-
System.out.println("onError");
7880
t.printStackTrace();
7981
}
8082
}

websocket/encoder-client/src/main/java/org/javaee7/websocket/encoder/client/MyEndpoint.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,17 +46,14 @@
4646
/**
4747
* @author Arun Gupta
4848
*/
49-
@ServerEndpoint("/websocket")
49+
@ServerEndpoint("/encoder-client")
5050
public class MyEndpoint {
5151

5252
@OnOpen
53-
public void onOpen() {
54-
System.out.println("MyEndpoint.onOpen");
55-
}
53+
public void onOpen() { }
5654

5755
@OnMessage
58-
public String echoText(String text) {
59-
System.out.println("Received in endpoint: " + text);
56+
public String echoText(String text) {
6057
return text;
6158
}
6259

websocket/encoder-client/src/main/java/org/javaee7/websocket/encoder/client/MyMessageDecoder.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ public class MyMessageDecoder implements Decoder.Text<MyMessage> {
5252

5353
@Override
5454
public MyMessage decode(String string) throws DecodeException {
55+
MyClient.latch.countDown();
5556
return new MyMessage(Json.createReader(new StringReader(string)).readObject());
5657
}
5758

@@ -61,12 +62,8 @@ public boolean willDecode(String string) {
6162
}
6263

6364
@Override
64-
public void init(EndpointConfig ec) {
65-
System.out.println("init");
66-
}
65+
public void init(EndpointConfig ec) { }
6766

6867
@Override
69-
public void destroy() {
70-
System.out.println("desroy");
71-
}
68+
public void destroy() { }
7269
}

websocket/encoder-client/src/main/java/org/javaee7/websocket/encoder/client/MyMessageEncoder.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -49,16 +49,13 @@
4949
public class MyMessageEncoder implements Encoder.Text<MyMessage> {
5050
@Override
5151
public String encode(MyMessage myMessage) throws EncodeException {
52+
MyClient.latch.countDown();
5253
return myMessage.getJsonObject().toString();
5354
}
5455

5556
@Override
56-
public void init(EndpointConfig ec) {
57-
System.out.println("init");
58-
}
57+
public void init(EndpointConfig ec) { }
5958

6059
@Override
61-
public void destroy() {
62-
System.out.println("desroy");
63-
}
60+
public void destroy() { }
6461
}

websocket/encoder-client/src/main/java/org/javaee7/websocket/encoder/client/TestClient.java

Lines changed: 0 additions & 136 deletions
This file was deleted.

websocket/encoder-client/src/main/webapp/index.jsp

Lines changed: 0 additions & 57 deletions
This file was deleted.
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
/*
2+
* To change this license header, choose License Headers in Project Properties.
3+
* To change this template file, choose Tools | Templates
4+
* and open the template in the editor.
5+
*/
6+
7+
package org.javaee7.websocket.encoder.client;
8+
9+
import java.io.IOException;
10+
import java.net.URI;
11+
import java.net.URISyntaxException;
12+
import java.util.concurrent.TimeUnit;
13+
import javax.websocket.ContainerProvider;
14+
import javax.websocket.DeploymentException;
15+
import javax.websocket.MessageHandler;
16+
import javax.websocket.Session;
17+
import javax.websocket.WebSocketContainer;
18+
import org.jboss.arquillian.container.test.api.Deployment;
19+
import org.jboss.arquillian.junit.Arquillian;
20+
import org.jboss.arquillian.test.api.ArquillianResource;
21+
import org.jboss.shrinkwrap.api.ShrinkWrap;
22+
import org.jboss.shrinkwrap.api.spec.WebArchive;
23+
import org.junit.Test;
24+
import static org.junit.Assert.*;
25+
import org.junit.runner.RunWith;
26+
27+
/**
28+
* @author Arun Gupta
29+
*/
30+
@RunWith(Arquillian.class)
31+
public class MyClientTest {
32+
@ArquillianResource
33+
URI base;
34+
35+
/**
36+
* Arquillian specific method for creating a file which can be deployed
37+
* while executing the test.
38+
*/
39+
@Deployment(testable = false)
40+
public static WebArchive createDeployment() {
41+
return ShrinkWrap.create(WebArchive.class)
42+
.addClasses(MyEndpoint.class,
43+
MyMessage.class,
44+
MyMessageEncoder.class,
45+
MyMessageDecoder.class);
46+
}
47+
48+
@Test
49+
public void testEndpointEmptyJSONObject() throws URISyntaxException, DeploymentException, IOException, InterruptedException {
50+
final String JSON = "{\"apple\" : \"red\", \"banana\": \"yellow\"}";
51+
Session session = connectToServer(MyClient.class);
52+
assertNotNull(session);
53+
session.addMessageHandler(new MessageHandler.Whole<String>() {
54+
@Override
55+
public void onMessage(String text) {
56+
assertEquals(JSON, text);
57+
}
58+
});
59+
assertTrue(MyClient.latch.await(2, TimeUnit.SECONDS));
60+
}
61+
62+
public Session connectToServer(Class endpoint) throws DeploymentException, IOException, URISyntaxException {
63+
WebSocketContainer container = ContainerProvider.getWebSocketContainer();
64+
assertNotNull(container);
65+
assertNotNull(base);
66+
URI uri = new URI("ws://"
67+
+ base.getHost()
68+
+ ":"
69+
+ base.getPort()
70+
+ "/"
71+
+ base.getPath()
72+
+ "/encoder-client");
73+
return container.connectToServer(endpoint, uri);
74+
}
75+
76+
}

0 commit comments

Comments
 (0)