Package com.opengamma.bbg.livedata

Source Code of com.opengamma.bbg.livedata.BloombergJmsTopicNameResolverTest

/**
* Copyright (C) 2009 - 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.assertFalse;
import static org.testng.AssertJUnit.assertTrue;

import java.util.Map;
import java.util.Set;

import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;

import com.google.common.collect.Sets;
import com.opengamma.bbg.referencedata.ReferenceDataProvider;
import com.opengamma.bbg.test.BloombergLiveDataServerUtils;
import com.opengamma.bbg.util.BloombergDataUtils;
import com.opengamma.core.id.ExternalSchemes;
import com.opengamma.id.ExternalId;
import com.opengamma.id.ExternalIdBundle;
import com.opengamma.livedata.normalization.NormalizationRuleSet;
import com.opengamma.livedata.resolver.JmsTopicNameResolveRequest;
import com.opengamma.util.test.TestGroup;

/**
* Test.
*/
@Test(groups = TestGroup.INTEGRATION)
public class BloombergJmsTopicNameResolverTest {

  private BloombergLiveDataServer _server;

  @BeforeClass
  public void setUpClass() {
    _server = BloombergLiveDataServerUtils.startTestServer(BloombergJmsTopicNameResolverTest.class);
  }

  @AfterClass
  public void tearDownClass() {
    BloombergLiveDataServerUtils.stopTestServer(_server);
  }

  //-------------------------------------------------------------------------
  @Test(enabled = false)
  private void testResolve(NormalizationRuleSet rules) {
   
    ReferenceDataProvider rdp = _server.getReferenceDataProvider();
    BloombergIdResolver idResolver = new BloombergIdResolver(rdp);
   
    BloombergJmsTopicNameResolver topicNameResolver = new BloombergJmsTopicNameResolver(rdp);
   
    ExternalId aaplEquity = idResolver.resolve(
        ExternalIdBundle.of(ExternalSchemes.bloombergTickerSecurityId("AAPL US Equity")));
    String spec = topicNameResolver.resolve(new JmsTopicNameResolveRequest(aaplEquity, rules));
    assertEquals("LiveData.Bloomberg.Equity.NASDAQ GS.AAPL" + rules.getJmsTopicSuffix(), spec);
   
    ExternalId usDomesticBond = idResolver.resolve(
        ExternalIdBundle.of(ExternalSchemes.cusipSecurityId("607059AT9")));
    spec = topicNameResolver.resolve(new JmsTopicNameResolveRequest(usDomesticBond, rules));
    assertEquals("LiveData.Bloomberg.Bond.MOBIL CORP.607059AT9" + rules.getJmsTopicSuffix(), spec);
   
    ExternalId globalBond = idResolver.resolve(
        ExternalIdBundle.of(ExternalSchemes.cusipSecurityId("4581X0AD0")));
    spec = topicNameResolver.resolve(new JmsTopicNameResolveRequest(globalBond, rules));
    assertEquals("LiveData.Bloomberg.Bond.INTER-AMERICAN DEVEL BK.US4581X0AD07" + rules.getJmsTopicSuffix(), spec);
   
    Set<ExternalId> options = BloombergDataUtils.getOptionChain(rdp, "AAPL US Equity");
    assertFalse(options.isEmpty());
    ExternalId aaplOptionId = options.iterator().next();
    ExternalId aaplOption = idResolver.resolve(ExternalIdBundle.of(aaplOptionId));
    spec = topicNameResolver.resolve(new JmsTopicNameResolveRequest(aaplOption, rules));
    assertTrue(spec.startsWith("LiveData.Bloomberg.EquityOption.AAPL US."));
    assertTrue(spec.endsWith(rules.getJmsTopicSuffix()));
   
    // bulk request
    Map<JmsTopicNameResolveRequest, String> request2TopicName = topicNameResolver.resolve(
        Sets.newHashSet(
            new JmsTopicNameResolveRequest(aaplEquity, rules),
            new JmsTopicNameResolveRequest(usDomesticBond, rules)));
    assertEquals(2, request2TopicName.size());
    assertEquals("LiveData.Bloomberg.Equity.NASDAQ GS.AAPL" + rules.getJmsTopicSuffix(),
        request2TopicName.get(new JmsTopicNameResolveRequest(aaplEquity, rules)));
    assertEquals("LiveData.Bloomberg.Bond.MOBIL CORP.607059AT9" + rules.getJmsTopicSuffix(),
        request2TopicName.get(new JmsTopicNameResolveRequest(usDomesticBond, rules)));
  }

  @Test
  public void emptyNormalization() {
    testResolve(new NormalizationRuleSet(""));   
  }

  @Test
  public void nonEmptyNormalization() {
    testResolve(new NormalizationRuleSet("Test"));
  }

}
TOP

Related Classes of com.opengamma.bbg.livedata.BloombergJmsTopicNameResolverTest

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.