/**
* Copyright (C) 2009 - 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 org.testng.annotations.Test;
import com.opengamma.core.id.ExternalSchemes;
import com.opengamma.financial.analytics.ircurve.CurveDefinitionAndSpecifications;
import com.opengamma.financial.analytics.ircurve.FixedIncomeStrip;
import com.opengamma.financial.analytics.ircurve.StripInstrumentType;
import com.opengamma.financial.analytics.ircurve.YieldCurveDefinition;
import com.opengamma.util.i18n.Country;
import com.opengamma.util.money.Currency;
import com.opengamma.util.test.TestGroup;
import com.opengamma.util.time.Tenor;
/**
* Test.
*/
@Test(groups = TestGroup.UNIT)
public class YieldCurveDefinitionFudgeEncodingTest extends FinancialTestBase {
@Test
public void testCycle() {
final YieldCurveDefinition curveDefinition = new YieldCurveDefinition(Currency.USD, ExternalSchemes.countryRegionId(Country.US), "NAME", "LINEAR", "LEFT", "RIGHT", false);
curveDefinition.addStrip(new FixedIncomeStrip(StripInstrumentType.CASH, Tenor.DAY, "Convention"));
assertEquals(curveDefinition, cycleObject(YieldCurveDefinition.class, curveDefinition));
curveDefinition.addStrip(new FixedIncomeStrip(StripInstrumentType.FUTURE, Tenor.TWO_YEARS, 3, "CONVENTIONAL"));
assertEquals(curveDefinition, cycleObject(YieldCurveDefinition.class, curveDefinition));
}
@Test
public void testRealCycle() {
final YieldCurveDefinition curveDefinition = CurveDefinitionAndSpecifications.buildUSDThreeMonthForwardCurveDefinition();
assertEquals(curveDefinition, cycleObject(YieldCurveDefinition.class, curveDefinition));
final YieldCurveDefinition curveDefinition2 = CurveDefinitionAndSpecifications.buildUSDFundingCurveDefinition();
assertEquals(curveDefinition2, cycleObject(YieldCurveDefinition.class, curveDefinition2));
}
}