/**
* Copyright (C) 2011 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.financial.fudgemsg;
import static org.testng.AssertJUnit.assertEquals;
import java.util.HashMap;
import java.util.Map;
import org.testng.annotations.Test;
import com.opengamma.core.id.ExternalSchemes;
import com.opengamma.engine.target.Primitive.ExternalIdentifiablePrimitive;
import com.opengamma.financial.analytics.volatility.surface.FuturePriceCurveData;
import com.opengamma.id.ExternalId;
import com.opengamma.id.UniqueId;
import com.opengamma.util.money.Currency;
import com.opengamma.util.test.TestGroup;
/**
* Test.
*/
@Test(groups = TestGroup.UNIT)
public class FuturePriceCurveDataFudgeEncodingTest extends FinancialTestBase {
private static final String DEFINITION_NAME = "DN";
private static final String SPECIFICATION_NAME = "SN";
private static final Currency UID = Currency.USD;
private static final Map<Double, Double> VALUES;
private static final Double[] X;
static {
final int n = 10;
X = new Double[n];
VALUES = new HashMap<Double, Double>();
for (int i = 0; i < n; i++) {
X[i] = i * 3.;
VALUES.put(X[i], Math.random());
}
}
@Test
public void testCycle() {
final FuturePriceCurveData<Double> data = new FuturePriceCurveData<Double>(DEFINITION_NAME, SPECIFICATION_NAME, UID, X, VALUES);
assertEquals(data, cycleObject(FuturePriceCurveData.class, data));
}
@Test
public void testExternalIdAsTarget() {
// The following does not work
// ExternalId extId = ExternalId.of(ExternalSchemes.ACTIVFEED_TICKER, "=SPX.W");
// UniqueId uniqId = UniqueId.of(extId);
// ExternalIdentifiablePrimitive primitive = new ExternalIdentifiablePrimitive(uniqId, extId);
// But this does!
UniqueId uniqId = UniqueId.of(ExternalSchemes.ACTIVFEED_TICKER.getName(), "=SPX.W");
ExternalIdentifiablePrimitive primitive = new ExternalIdentifiablePrimitive(uniqId, uniqId.toExternalId());
final FuturePriceCurveData<Double> data = new FuturePriceCurveData<Double>(DEFINITION_NAME, SPECIFICATION_NAME, primitive, X, VALUES);
assertEquals(data, cycleObject(FuturePriceCurveData.class, data));
}
}