Package org.lightfish.business.heartbeat.boundary

Source Code of org.lightfish.business.heartbeat.boundary.SnapshotSocketIT

/*
*
*/
package org.lightfish.business.heartbeat.boundary;

import java.io.IOException;
import java.io.StringReader;
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 javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
import org.junit.After;
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 SnapshotSocketIT {

    private MessageEndpoint endpoint;
    private CountDownLatch latch;
    private Session session;

    @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/snapshots/";
        System.out.println("Connecting to " + uri);
        this.session = container.connectToServer(this.endpoint, config, URI.create(uri));
    }

    /**
     * Setup updates to 2 seconds before performing this test
     */
    @Test
    public void statisticsArrived() throws InterruptedException, JAXBException {
        assertTrue(this.latch.await(15, TimeUnit.SECONDS));
        String message = endpoint.getMessage();
        assertNotNull(message);
        System.out.println("Message: " + message);
        JAXBContext jaxb = JAXBContext.newInstance(Snapshot.class);
        Unmarshaller unmarshaller = jaxb.createUnmarshaller();
        Snapshot snapshot = (Snapshot) unmarshaller.unmarshal(new StringReader(message));
        assertNotNull(snapshot);
        assertTrue(snapshot.getId() != 0);
    }

    @After
    public void disconnect() throws IOException {
        this.session.close();
    }

}
TOP

Related Classes of org.lightfish.business.heartbeat.boundary.SnapshotSocketIT

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.