/**
* 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.assertNull;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import com.opengamma.bbg.BloombergConstants;
import com.opengamma.bbg.util.MockReferenceDataProvider;
import com.opengamma.core.id.ExternalSchemes;
import com.opengamma.id.ExternalId;
import com.opengamma.id.ExternalIdBundle;
import com.opengamma.util.test.TestGroup;
/**
* Test.
*/
@Test(groups = TestGroup.UNIT)
public class BloombergIdResolverTest {
static final String AAPL_BB_ID_UNIQUE = "EQ0010169500001000";
private MockReferenceDataProvider _refDataProvider;
@BeforeMethod
public void setup() {
_refDataProvider = new MockReferenceDataProvider();
_refDataProvider.addResult("AAPL US Equity", BloombergConstants.FIELD_ID_BBG_UNIQUE, AAPL_BB_ID_UNIQUE);
_refDataProvider.addResult("foo123", null, null);
}
//-------------------------------------------------------------------------
@Test
public void aaplNoBbgId() {
ExternalIdBundle aaplEquity = ExternalIdBundle.of(ExternalSchemes.bloombergTickerSecurityId("AAPL US Equity"));
BloombergIdResolver resolver = new BloombergIdResolver(_refDataProvider);
ExternalId resolved = resolver.resolve(aaplEquity);
assertEquals(ExternalSchemes.bloombergBuidSecurityId(AAPL_BB_ID_UNIQUE), resolved);
}
@Test
public void aaplWithBbgId() {
ExternalIdBundle aaplEquity = ExternalIdBundle.of(
ExternalSchemes.bloombergTickerSecurityId("AAPL US Equity"),
ExternalSchemes.bloombergBuidSecurityId(AAPL_BB_ID_UNIQUE));
BloombergIdResolver resolver = new BloombergIdResolver(_refDataProvider);
ExternalId resolved = resolver.resolve(aaplEquity);
assertEquals(ExternalSchemes.bloombergBuidSecurityId(AAPL_BB_ID_UNIQUE), resolved);
}
@Test
public void bbgIdOnly() {
ExternalIdBundle aaplEquity = ExternalIdBundle.of(ExternalSchemes.bloombergBuidSecurityId(AAPL_BB_ID_UNIQUE));
BloombergIdResolver resolver = new BloombergIdResolver(_refDataProvider);
ExternalId resolved = resolver.resolve(aaplEquity);
assertEquals(ExternalSchemes.bloombergBuidSecurityId(AAPL_BB_ID_UNIQUE), resolved);
}
@Test
public void invalidBbgId() {
ExternalIdBundle invalidSpec = ExternalIdBundle.of(ExternalSchemes.bloombergTickerSecurityId("foo123"));
BloombergIdResolver resolver = new BloombergIdResolver(_refDataProvider);
ExternalId resolved = resolver.resolve(invalidSpec);
assertNull(resolved);
}
@Test
public void invalidBbgUniqueId() {
ExternalId invalidSpec = ExternalSchemes.bloombergBuidSecurityId("foo123");
BloombergIdResolver resolver = new BloombergIdResolver(_refDataProvider);
ExternalId resolved = resolver.resolve(ExternalIdBundle.of(invalidSpec));
// doesn't validate unique IDs at the moment! should it?
assertEquals(invalidSpec, resolved);
}
}