package com.opengamma.financial.security.irs; import org.testng.annotations.Test; import org.threeten.bp.LocalDate; import com.opengamma.OpenGammaRuntimeException; import com.opengamma.financial.convention.StubType; import com.opengamma.id.ExternalId; import com.opengamma.id.ExternalScheme; import com.opengamma.util.test.TestGroup; import com.opengamma.util.time.Tenor; @Test(groups = TestGroup.UNIT) public class StubCalculationMethodTest { String USD_LIBOR1M = "1MLIBOR"; String USD_LIBOR2M = "2MLIBOR"; String USD_LIBOR3M = "3MLIBOR"; ExternalId _firstStubStartReferenceRateId = ExternalId.of(ExternalScheme.of("CONVENTION"), USD_LIBOR1M); ExternalId _firstStubEndReferenceRateId = ExternalId.of(ExternalScheme.of("CONVENTION"), USD_LIBOR3M); ExternalId _secondStubStartIndexId = ExternalId.of(ExternalScheme.of("CONVENTION"), USD_LIBOR2M); ExternalId secondStubEndIndexId = _firstStubEndReferenceRateId; @Test(expectedExceptions = OpenGammaRuntimeException.class) private void shortStartStubIllegalDefnTest() { StubCalculationMethod.Builder stubBuilder = StubCalculationMethod.builder() .type(StubType.SHORT_START) .firstStubEndReferenceRateId(_firstStubEndReferenceRateId); StubCalculationMethod stub = stubBuilder.build(); stub.validate(); } @Test(expectedExceptions = OpenGammaRuntimeException.class) private void longStartStubIllegalDefnTest() { StubCalculationMethod.Builder stubBuilder = StubCalculationMethod.builder() .type(StubType.LONG_START) .firstStubStartReferenceRateId(_firstStubStartReferenceRateId); StubCalculationMethod stub = stubBuilder.build(); stub.validate(); } @Test(expectedExceptions = OpenGammaRuntimeException.class) private void shortEndStubIllegalDefnTest() { StubCalculationMethod.Builder stubBuilder = StubCalculationMethod.builder() .type(StubType.SHORT_END) .lastStubStartReferenceRateId(_secondStubStartIndexId); StubCalculationMethod stub = stubBuilder.build(); stub.validate(); } @Test(expectedExceptions = IllegalArgumentException.class) private void longEndStubIllegalDefnTest() { StubCalculationMethod.Builder stubBuilder = StubCalculationMethod.builder() .firstStubEndReferenceRateId(_firstStubEndReferenceRateId); StubCalculationMethod stub = stubBuilder.build(); stub.validate(); } @Test private void shortStubBuilderValidationTest() { StubCalculationMethod.Builder stubBuilder = StubCalculationMethod.builder() .type(StubType.SHORT_START) .firstStubStartReferenceRateId(_firstStubStartReferenceRateId) .firstStubEndReferenceRateId(_firstStubEndReferenceRateId); StubCalculationMethod stub = stubBuilder.build(); stub.validate(); } @Test private void shortStubBuilderValidationTest2() { StubCalculationMethod.Builder stubBuilder = StubCalculationMethod.builder() .type(StubType.BOTH) .firstStubEndDate(LocalDate.of(2014, 06, 18)) .firstStubStartReferenceRateId(_firstStubStartReferenceRateId) .firstStubEndReferenceRateId(_firstStubEndReferenceRateId) .lastStubEndDate(LocalDate.of(2016, 06, 18)) .lastStubStartReferenceRateId(_secondStubStartIndexId) .lastStubEndReferenceRateId(secondStubEndIndexId); StubCalculationMethod stub = stubBuilder.build(); stub.validate(); } }