/** * Copyright (C) 2014 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.basics.date; import static com.opengamma.basics.date.BusinessDayConventions.MODIFIED_FOLLOWING; import static com.opengamma.basics.date.HolidayCalendars.SAT_SUN; import static com.opengamma.collect.TestHelper.assertSerialization; import static com.opengamma.collect.TestHelper.coverImmutableBean; import static org.testng.Assert.assertEquals; import java.time.LocalDate; import org.testng.annotations.Test; /** * Test {@link BusinessDayAdjustment}. */ @Test public class BusinessDayAdjustmentTest { public void test_basics() { BusinessDayAdjustment test = BusinessDayAdjustment.of(MODIFIED_FOLLOWING, SAT_SUN); assertEquals(test.getConvention(), MODIFIED_FOLLOWING); assertEquals(test.getCalendar(), SAT_SUN); assertEquals(test.toString(), "ModifiedFollowing using calendar Sat/Sun"); } @Test(dataProvider = "convention", dataProviderClass = BusinessDayConventionTest.class) public void test_convention(BusinessDayConvention convention, LocalDate input, LocalDate expected) { BusinessDayAdjustment test = BusinessDayAdjustment.of(convention, SAT_SUN); assertEquals(test.adjust(input), expected); } public void test_noAdjust_constant() { BusinessDayAdjustment test = BusinessDayAdjustment.NONE; assertEquals(test.getConvention(), BusinessDayConventions.NO_ADJUST); assertEquals(test.getCalendar(), HolidayCalendars.NO_HOLIDAYS); assertEquals(test.toString(), "NoAdjust"); } public void test_noAdjust_factory() { BusinessDayAdjustment test = BusinessDayAdjustment.of(BusinessDayConventions.NO_ADJUST, HolidayCalendars.NO_HOLIDAYS); assertEquals(test.getConvention(), BusinessDayConventions.NO_ADJUST); assertEquals(test.getCalendar(), HolidayCalendars.NO_HOLIDAYS); assertEquals(test.toString(), "NoAdjust"); } public void test_noAdjust_normalized() { BusinessDayAdjustment test = BusinessDayAdjustment.of(BusinessDayConventions.NO_ADJUST, SAT_SUN); assertEquals(test.getConvention(), BusinessDayConventions.NO_ADJUST); assertEquals(test.getCalendar(), SAT_SUN); assertEquals(test.toString(), "NoAdjust using calendar Sat/Sun"); } //------------------------------------------------------------------------- public void coverage() { coverImmutableBean(BusinessDayAdjustment.of(MODIFIED_FOLLOWING, SAT_SUN)); } public void test_serialization() { assertSerialization(BusinessDayAdjustment.of(MODIFIED_FOLLOWING, SAT_SUN)); } }