6565import org .junit .runner .RunWith ;
6666
6767@ RunWith (Arquillian .class )
68+ // TODO Move test to client side.
6869public class ChatServerTest {
6970
7071 private static final Logger logger
@@ -73,7 +74,7 @@ public class ChatServerTest {
7374 private static ChatMessage testMessage ;
7475 private static ChatMessage testReply ;
7576
76- @ Deployment ( testable = false )
77+ @ Deployment
7778 public static WebArchive createDeployment () {
7879 return ShrinkWrap
7980 .create (WebArchive .class , "actionbazaar-test.war" )
@@ -82,64 +83,60 @@ public static WebArchive createDeployment() {
8283 }
8384
8485 @ Test
85- public void testChat () {
86- try {
87- URI uri = new URI ("ws://localhost:7001/actionbazaar-test/chat" );
86+ public void testChat () throws URISyntaxException , DeploymentException , IOException , InterruptedException {
87+ URI uri = new URI ("ws://localhost:8080/actionbazaar-test/chat" );
8888
89- WebSocketContainer container = ContainerProvider .getWebSocketContainer ();
89+ WebSocketContainer container = ContainerProvider .getWebSocketContainer ();
9090
91- ClientEndpointConfig configuration = ClientEndpointConfig .Builder .create ()
92- .decoders (Arrays .<Class <? extends Decoder >>asList (ChatMessage .class ))
93- .encoders (Arrays .<Class <? extends Encoder >>asList (ChatMessage .class ))
94- .build ();
91+ ClientEndpointConfig configuration = ClientEndpointConfig .Builder .create ()
92+ .decoders (Arrays .<Class <? extends Decoder >>asList (ChatMessage .class ))
93+ .encoders (Arrays .<Class <? extends Encoder >>asList (ChatMessage .class ))
94+ .build ();
9595
96- Endpoint client1 = new Endpoint () {
97- @ Override
98- public void onOpen (Session session , EndpointConfig config ) {
99- try {
100- session .addMessageHandler (new MessageHandler .Whole <ChatMessage >() {
101- @ Override
102- public void onMessage (ChatMessage message ) {
103- testReply = message ;
104- }
105- });
106- session .getBasicRemote ().sendObject (
107- new ChatMessage ("rrahman" , "Test message" ));
108- } catch (IOException | EncodeException e ) {
109- logger .log (Level .SEVERE , "Error in chat client" , e );
110- }
111- }
112- };
113-
114- Endpoint client2 = new Endpoint () {
115- @ Override
116- public void onOpen (final Session session , final EndpointConfig config ) {
96+ Endpoint client1 = new Endpoint () {
97+ @ Override
98+ public void onOpen (Session session , EndpointConfig config ) {
99+ try {
117100 session .addMessageHandler (new MessageHandler .Whole <ChatMessage >() {
118101 @ Override
119102 public void onMessage (ChatMessage message ) {
120- try {
121- testMessage = message ;
122- session .getBasicRemote ().sendObject (new ChatMessage ("nrahman" , "Test reply" ));
123- } catch (IOException | EncodeException ex ) {
124- logger .log (Level .SEVERE , "Error responding to message" , ex );
125- }
103+ testReply = message ;
126104 }
127105 });
106+ session .getBasicRemote ().sendObject (
107+ new ChatMessage ("rrahman" , "Test message" ));
108+ } catch (IOException | EncodeException e ) {
109+ logger .log (Level .SEVERE , "Error in chat client" , e );
128110 }
129- };
111+ }
112+ };
130113
131- container .connectToServer (client2 , configuration , uri );
132- container .connectToServer (client1 , configuration , uri );
114+ Endpoint client2 = new Endpoint () {
115+ @ Override
116+ public void onOpen (final Session session , final EndpointConfig config ) {
117+ session .addMessageHandler (new MessageHandler .Whole <ChatMessage >() {
118+ @ Override
119+ public void onMessage (ChatMessage message ) {
120+ try {
121+ testMessage = message ;
122+ session .getBasicRemote ().sendObject (new ChatMessage ("nrahman" , "Test reply" ));
123+ } catch (IOException | EncodeException ex ) {
124+ logger .log (Level .SEVERE , "Error responding to message" , ex );
125+ }
126+ }
127+ });
128+ }
129+ };
130+
131+ container .connectToServer (client2 , configuration , uri );
132+ container .connectToServer (client1 , configuration , uri );
133133
134- // Wait for conversation to finish.
135- Thread .sleep (2000 );
134+ // Wait for conversation to finish.
135+ Thread .sleep (2000 );
136136
137- assertEquals ("rrahman" , testMessage .getUser ());
138- assertEquals ("Test message" , testMessage .getMessage ());
139- assertEquals ("nrahman" , testReply .getUser ());
140- assertEquals ("Test reply" , testReply .getMessage ());
141- } catch (URISyntaxException | DeploymentException | IOException | InterruptedException ex ) {
142- logger .log (Level .SEVERE , "Error connecting to server" , ex );
143- }
137+ assertEquals ("rrahman" , testMessage .getUser ());
138+ assertEquals ("Test message" , testMessage .getMessage ());
139+ assertEquals ("nrahman" , testReply .getUser ());
140+ assertEquals ("Test reply" , testReply .getMessage ());
144141 }
145142}
0 commit comments