/** * Copyright (C) 2014 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.bbg.livedata; import static org.testng.AssertJUnit.assertEquals; import static org.testng.AssertJUnit.assertNotNull; import org.fudgemsg.FudgeContext; import org.fudgemsg.FudgeMsg; import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; import com.opengamma.bbg.referencedata.impl.BloombergReferenceDataProvider; import com.opengamma.bbg.test.BloombergTestUtils; import com.opengamma.core.id.ExternalSchemes; import com.opengamma.livedata.LiveDataSpecification; import com.opengamma.livedata.UserPrincipal; import com.opengamma.livedata.client.JmsLiveDataClient; import com.opengamma.livedata.msg.LiveDataSubscriptionResponse; import com.opengamma.livedata.msg.LiveDataSubscriptionResult; import com.opengamma.livedata.resolver.DistributionSpecificationResolver; import com.opengamma.livedata.server.StandardLiveDataServer; import com.opengamma.livedata.test.LiveDataClientTestUtils; import com.opengamma.livedata.test.StandardRulesUtils; import com.opengamma.transport.FudgeMessageSender; import com.opengamma.util.ehcache.EHCacheUtils; import com.opengamma.util.fudgemsg.OpenGammaFudgeContext; import com.opengamma.util.test.TestGroup; /** * */ @Test(groups = TestGroup.INTEGRATION) public class BloombergBpipeLiveDataServerTest { private final static UserPrincipal TEST_USER = UserPrincipal.getTestUser(); private BloombergLiveDataServer _server; private BloombergReferenceDataProvider _refernceDataProvider; private JmsLiveDataClient _liveDataClient; @BeforeClass public void setUpClass() throws Exception { BloombergReferenceDataProvider referenceDataProvider = new BloombergReferenceDataProvider(BloombergTestUtils.getBloombergBipeConnector()); referenceDataProvider.start(); _refernceDataProvider = referenceDataProvider; FudgeMessageSender fudgeMessageSender = new FudgeMessageSender() { @Override public void send(FudgeMsg message) { // do nothing } @Override public FudgeContext getFudgeContext() { return OpenGammaFudgeContext.getInstance(); } }; BloombergLiveDataServer server = new BloombergLiveDataServer(BloombergTestUtils.getBloombergBipeConnector(), _refernceDataProvider, EHCacheUtils.createCacheManager(), fudgeMessageSender); DistributionSpecificationResolver distributionSpecificationResolver = server.getDefaultDistributionSpecificationResolver(); server.setDistributionSpecificationResolver(distributionSpecificationResolver); server.start(); _server = server; if (StandardLiveDataServer.ConnectionStatus.NOT_CONNECTED.equals(_server.getConnectionStatus()) == true) { Thread.sleep(1000); } _liveDataClient = LiveDataClientTestUtils.getJmsClient(_server); } @AfterClass public void tearDownClass() { _liveDataClient.stop(); if (_refernceDataProvider != null) { _refernceDataProvider.stop(); } if (_server != null) { _server.stop(); } } //------------------------------------------------------------------------- @Test public void testSnapshot() { LiveDataSubscriptionResponse snapshotResponse = snapshot("IBM US Equity"); assertNotNull(snapshotResponse); assertEquals(LiveDataSubscriptionResult.SUCCESS, snapshotResponse.getSubscriptionResult()); StandardRulesUtils.validateOpenGammaMsg(snapshotResponse.getSnapshot().getFields()); } private LiveDataSubscriptionResponse snapshot(String ticker) { LiveDataSpecification requestedSpecification = new LiveDataSpecification( _liveDataClient.getDefaultNormalizationRuleSetId(), ExternalSchemes.bloombergTickerSecurityId(ticker)); return _liveDataClient.snapshot(TEST_USER, requestedSpecification, 3000); } }