/** * Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.financial.convention.daycount; import static org.testng.AssertJUnit.assertEquals; import org.apache.commons.lang.NotImplementedException; import org.testng.annotations.Test; import org.threeten.bp.LocalDate; import org.threeten.bp.ZonedDateTime; import com.opengamma.OpenGammaRuntimeException; import com.opengamma.util.test.TestGroup; import com.opengamma.util.time.DateUtils; /** * Test ThirtyEThreeSixtyISDA. */ @Test(groups = TestGroup.UNIT) public class ThirtyEThreeSixtyISDATest { private static final ThirtyEThreeSixtyISDA DC = new ThirtyEThreeSixtyISDA(); protected static final ZonedDateTime D1 = DateUtils.getUTCDate(2010, 1, 1); protected static final ZonedDateTime D2 = DateUtils.getUTCDate(2010, 4, 1); protected static final ZonedDateTime D3 = DateUtils.getUTCDate(2010, 7, 1); protected static final LocalDate D4 = LocalDate.of(2010, 1, 1); protected static final LocalDate D5 = LocalDate.of(2010, 4, 1); protected static final LocalDate D6 = LocalDate.of(2010, 7, 1); protected static final double COUPON = 0.01; protected static final int PAYMENTS = 4; @Test(expectedExceptions = NotImplementedException.class) public void testNoMaturityValue1() { DC.getAccruedInterest(D1, D2, D3, COUPON, PAYMENTS); } @Test(expectedExceptions = NotImplementedException.class) public void testNoMaturityValue2() { DC.getDayCountFraction(D1, D2); } @Test(expectedExceptions = IllegalArgumentException.class) public void testNullFirstDate1() { DC.getDayCountFraction(null, D2, true); } @Test(expectedExceptions = IllegalArgumentException.class) public void testNullSecondDate1() { DC.getDayCountFraction(D1, null, true); } @Test(expectedExceptions = OpenGammaRuntimeException.class) public void testWrongOrder1() { DC.getDayCountFraction(D2, D1, true); } @Test public void testNoAccruedInterest1() { assertEquals(DC.getAccruedInterest(D1, D1, COUPON, true), 0, 0); assertEquals(DC.getName(), "30E/360 ISDA"); } @Test(expectedExceptions = NotImplementedException.class) public void testNoMaturityValue3() { DC.getAccruedInterest(D4, D5, D6, COUPON, PAYMENTS); } @Test(expectedExceptions = NotImplementedException.class) public void testNoMaturityValue4() { DC.getDayCountFraction(D4, D5); } @Test(expectedExceptions = IllegalArgumentException.class) public void testNullFirstDate2() { DC.getDayCountFraction(null, D5, true); } @Test(expectedExceptions = IllegalArgumentException.class) public void testNullSecondDate2() { DC.getDayCountFraction(D4, null, true); } @Test(expectedExceptions = OpenGammaRuntimeException.class) public void testWrongOrder2() { DC.getDayCountFraction(D5, D4, true); } @Test public void testNoAccruedInterest2() { assertEquals(DC.getAccruedInterest(D4, D4, COUPON, true), 0, 0); assertEquals(DC.getName(), "30E/360 ISDA"); } }