/*
*
*/
package org.lightfish.business.appmonitoring.boundary;
import java.io.IOException;
import java.net.URI;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import javax.websocket.ClientEndpointConfig;
import javax.websocket.ContainerProvider;
import javax.websocket.DeploymentException;
import javax.websocket.Session;
import javax.websocket.WebSocketContainer;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import org.junit.Before;
import org.junit.Test;
import org.lightfish.business.MessageEndpoint;
/**
*
* @author adam-bien.com
*/
public class ApplicationsSocketIT {
private MessageEndpoint endpoint;
private CountDownLatch latch;
@Before
public void init() throws DeploymentException, IOException {
this.latch = new CountDownLatch(1);
this.endpoint = new MessageEndpoint(this.latch);
WebSocketContainer container = ContainerProvider.getWebSocketContainer();
ClientEndpointConfig config = ClientEndpointConfig.Builder.create().build();
String uri = "ws://localhost:8080/lightfish/applications/lightfish";
System.out.println("Connecting to " + uri);
Session session = container.connectToServer(this.endpoint, config, URI.create(uri));
}
/**
* Setup updates to 2 seconds before performing this test
*/
@Test
public void statisticsArrived() throws InterruptedException {
assertTrue(this.latch.await(5, TimeUnit.SECONDS));
String message = endpoint.getMessage();
assertNotNull(message);
System.out.println("Message: " + message);
}
}