/** * Copyright (C) 2014 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.strata.basics.date; import static com.opengamma.strata.basics.date.BusinessDayConventions.MODIFIED_FOLLOWING; import static com.opengamma.strata.basics.date.HolidayCalendarIds.NO_HOLIDAYS; import static com.opengamma.strata.basics.date.HolidayCalendarIds.SAT_SUN; import static com.opengamma.strata.collect.TestHelper.assertSerialization; import static com.opengamma.strata.collect.TestHelper.coverImmutableBean; import static org.testng.Assert.assertEquals; import java.time.LocalDate; import org.testng.annotations.Test; import com.opengamma.strata.basics.ReferenceData; /** * Test {@link BusinessDayAdjustment}. */ @Test public class BusinessDayAdjustmentTest { private static final ReferenceData REF_DATA = ReferenceData.standard(); 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_adjustDate(BusinessDayConvention convention, LocalDate input, LocalDate expected) { BusinessDayAdjustment test = BusinessDayAdjustment.of(convention, SAT_SUN); assertEquals(test.adjust(input, REF_DATA), expected); assertEquals(test.resolve(REF_DATA).adjust(input), expected); } public void test_noAdjust_constant() { BusinessDayAdjustment test = BusinessDayAdjustment.NONE; assertEquals(test.getConvention(), BusinessDayConventions.NO_ADJUST); assertEquals(test.getCalendar(), NO_HOLIDAYS); assertEquals(test.toString(), "NoAdjust"); } public void test_noAdjust_factory() { BusinessDayAdjustment test = BusinessDayAdjustment.of(BusinessDayConventions.NO_ADJUST, NO_HOLIDAYS); assertEquals(test.getConvention(), BusinessDayConventions.NO_ADJUST); assertEquals(test.getCalendar(), 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 coverage_builder() { BusinessDayAdjustment test = BusinessDayAdjustment.builder() .convention(MODIFIED_FOLLOWING) .calendar(SAT_SUN) .build(); assertEquals(test.getConvention(), MODIFIED_FOLLOWING); assertEquals(test.getCalendar(), SAT_SUN); } public void test_serialization() { assertSerialization(BusinessDayAdjustment.of(MODIFIED_FOLLOWING, SAT_SUN)); } }