Package com.opengamma.web.analytics.push

Source Code of com.opengamma.web.analytics.push.RestMasterSubscriptionTest

/**
* Copyright (C) 2011 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.web.analytics.push;

import java.io.IOException;

import org.eclipse.jetty.server.Server;
import org.json.JSONException;
import org.springframework.web.context.WebApplicationContext;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import org.threeten.bp.Instant;

import com.opengamma.core.change.ChangeType;
import com.opengamma.id.UniqueId;
import com.opengamma.util.test.TestGroup;
import com.opengamma.util.tuple.Pair;

/**
* Test.
*/
@Test(groups = TestGroup.UNIT)
public class RestMasterSubscriptionTest {

  private Server _server;
  private TestChangeManager _positionChangeManager;
  private WebPushTestUtils _webPushTestUtils = new WebPushTestUtils();

  @BeforeClass
  public void createServer() throws Exception {
    Pair<Server,WebApplicationContext> serverAndContext = _webPushTestUtils.createJettyServer("classpath:/com/opengamma/web/analytics/push/rest-subscription-test.xml");
    _server = serverAndContext.getFirst();
    WebApplicationContext context = serverAndContext.getSecond();
    _positionChangeManager = context.getBean("positionChangeManager", TestChangeManager.class);
  }

  @AfterClass
  public void tearDown() throws Exception {
    _server.stop();
  }

  @Test
  public void masterSubscription() throws IOException, JSONException {
    String clientId = _webPushTestUtils.handshake();
    String restUrl = "/jax/test/positions";
    // this REST request should set up a subscription for any changes in the position master
    _webPushTestUtils.readFromPath(restUrl, clientId);
    // send a change event
    UniqueId uid = UniqueId.of("Tst", "101");
    _positionChangeManager.entityChanged(ChangeType.CHANGED, uid.getObjectId(), null, null, Instant.now());
    // connect to the long-polling URL to receive notification of the change
    String json = _webPushTestUtils.readFromPath("/updates/" + clientId);
    WebPushTestUtils.checkJsonResults(json, restUrl);
  }
}
TOP

Related Classes of com.opengamma.web.analytics.push.RestMasterSubscriptionTest

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.