/**
* Copyright (C) 2013 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.financial.security.swap;
import org.testng.annotations.Test;
import com.opengamma.financial.convention.businessday.BusinessDayConvention;
import com.opengamma.financial.convention.businessday.BusinessDayConventions;
import com.opengamma.financial.convention.daycount.DayCount;
import com.opengamma.financial.convention.daycount.DayCounts;
import com.opengamma.financial.convention.frequency.Frequency;
import com.opengamma.financial.convention.frequency.SimpleFrequency;
import com.opengamma.id.ExternalId;
import com.opengamma.util.money.Currency;
import com.opengamma.util.test.AbstractFudgeBuilderTestCase;
import com.opengamma.util.test.TestGroup;
/**
*
*/
@Test(groups = TestGroup.UNIT)
public class SwapLegFudgeBuilderTest extends AbstractFudgeBuilderTestCase {
private static final DayCount DC = DayCounts.ACT_360;
private static final Frequency FREQUENCY = SimpleFrequency.SEMI_ANNUAL;
private static final ExternalId REGION_ID = ExternalId.of("Test", "US");
private static final BusinessDayConvention BDC = BusinessDayConventions.MODIFIED_FOLLOWING;
private static final Notional NOTIONAL = new InterestRateNotional(Currency.USD, 10000);
private static final boolean EOM = true;
private static final ExternalId REF_ID = ExternalId.of("Test", "ASD");
@Test
public void testFixedInterestRateLeg() {
final FixedInterestRateLeg leg = new FixedInterestRateLeg(DC, FREQUENCY, REGION_ID, BDC, NOTIONAL, EOM, 0.05);
assertEncodeDecodeCycle(FixedInterestRateLeg.class, leg);
}
@Test
public void testFloatingInterestRateLeg() {
final FloatingInterestRateLeg leg = new FloatingInterestRateLeg(DC, FREQUENCY, REGION_ID, BDC, NOTIONAL, EOM, REF_ID, FloatingRateType.OIS);
assertEncodeDecodeCycle(FloatingInterestRateLeg.class, leg);
}
@Test
public void testFloatingSpreadIRLeg() {
final FloatingSpreadIRLeg leg = new FloatingSpreadIRLeg(DC, FREQUENCY, REGION_ID, BDC, NOTIONAL, EOM, REF_ID, FloatingRateType.CMS, 0.002);
assertEncodeDecodeCycle(FloatingSpreadIRLeg.class, leg);
}
@Test
public void testFloatingGearingIRLeg() {
final FloatingGearingIRLeg leg = new FloatingGearingIRLeg(DC, FREQUENCY, REGION_ID, BDC, NOTIONAL, EOM, REF_ID, FloatingRateType.IBOR, 2);
assertEncodeDecodeCycle(FloatingGearingIRLeg.class, leg);
}
@Test
public void testFixedInflationSwapLeg() {
final FixedInflationSwapLeg leg = new FixedInflationSwapLeg(DC, FREQUENCY, REGION_ID, BDC, NOTIONAL, EOM, 0.002);
assertEncodeDecodeCycle(FixedInflationSwapLeg.class, leg);
}
@Test
public void testInflationIndexSwapLeg() {
final InflationIndexSwapLeg leg = new InflationIndexSwapLeg(DC, FREQUENCY, REGION_ID, BDC, NOTIONAL, EOM, ExternalId.of("Test", "SDF"),
2, 3, InterpolationMethod.MONTH_START_LINEAR);
assertEncodeDecodeCycle(InflationIndexSwapLeg.class, leg);
}
}