public virtual void test_ofCalendarDays2_adjust()
        {
            DaysAdjustment test  = DaysAdjustment.ofCalendarDays(2, BDA_FOLLOW_SAT_SUN);
            LocalDate      @base = date(2014, 8, 15);                              // Fri

            assertEquals(test.adjust(@base, REF_DATA), date(2014, 8, 18));         // Mon
            assertEquals(test.resolve(REF_DATA).adjust(@base), date(2014, 8, 18)); // Mon
        }
        public virtual void test_ofCalendarDays1_adjust()
        {
            DaysAdjustment test  = DaysAdjustment.ofCalendarDays(2);
            LocalDate      @base = date(2014, 8, 15);                              // Fri

            assertEquals(test.adjust(@base, REF_DATA), date(2014, 8, 17));         // Sun
            assertEquals(test.resolve(REF_DATA).adjust(@base), date(2014, 8, 17)); // Sun
        }
        public virtual void test_ofCalendarDays2_fourDays()
        {
            DaysAdjustment test = DaysAdjustment.ofCalendarDays(4, BDA_FOLLOW_SAT_SUN);

            assertEquals(test.Days, 4);
            assertEquals(test.Calendar, NO_HOLIDAYS);
            assertEquals(test.Adjustment, BDA_FOLLOW_SAT_SUN);
            assertEquals(test.ToString(), "4 calendar days then apply Following using calendar Sat/Sun");
        }
        public virtual void test_ofCalendarDays1_threeDays()
        {
            DaysAdjustment test = DaysAdjustment.ofCalendarDays(3);

            assertEquals(test.Days, 3);
            assertEquals(test.Calendar, NO_HOLIDAYS);
            assertEquals(test.Adjustment, BDA_NONE);
            assertEquals(test.ToString(), "3 calendar days");
        }
        //-------------------------------------------------------------------------
        public virtual void test_ofCalendarDays1_oneDay()
        {
            DaysAdjustment test = DaysAdjustment.ofCalendarDays(1);

            assertEquals(test.Days, 1);
            assertEquals(test.Calendar, NO_HOLIDAYS);
            assertEquals(test.Adjustment, BDA_NONE);
            assertEquals(test.ToString(), "1 calendar day");
        }
 //-------------------------------------------------------------------------
 /// <summary>
 /// Normalizes the adjustment.
 /// <para>
 /// If the number of days is zero, the calendar is set no 'NoHolidays'.
 /// If the number of days is non-zero and the calendar equals the adjustment calendar,
 /// the adjustment is removed.
 ///
 /// </para>
 /// </summary>
 /// <returns> the normalized adjustment </returns>
 public DaysAdjustment normalized()
 {
     if (days == 0)
     {
         if (calendar != HolidayCalendarIds.NO_HOLIDAYS)
         {
             return(DaysAdjustment.ofCalendarDays(days, adjustment));
         }
         return(this);
     }
     if (calendar.Equals(adjustment.Calendar))
     {
         return(DaysAdjustment.ofBusinessDays(days, calendar));
     }
     return(this);
 }
        //-------------------------------------------------------------------------
        public virtual void test_normalized()
        {
            DaysAdjustment zeroDays             = DaysAdjustment.ofCalendarDays(0, BDA_FOLLOW_SAT_SUN);
            DaysAdjustment zeroDaysWithCalendar = DaysAdjustment.ofBusinessDays(0, WED_THU, BDA_FOLLOW_SAT_SUN);
            DaysAdjustment twoDays                 = DaysAdjustment.ofCalendarDays(2, BDA_FOLLOW_SAT_SUN);
            DaysAdjustment twoDaysWithCalendar     = DaysAdjustment.ofBusinessDays(2, WED_THU, BDA_FOLLOW_SAT_SUN);
            DaysAdjustment twoDaysWithSameCalendar = DaysAdjustment.ofBusinessDays(2, SAT_SUN, BDA_FOLLOW_SAT_SUN);
            DaysAdjustment twoDaysWithNoAdjust     = DaysAdjustment.ofBusinessDays(2, SAT_SUN);

            assertEquals(zeroDays.normalized(), zeroDays);
            assertEquals(zeroDaysWithCalendar.normalized(), zeroDays);
            assertEquals(twoDays.normalized(), twoDays);
            assertEquals(twoDaysWithCalendar.normalized(), twoDaysWithCalendar);
            assertEquals(twoDaysWithSameCalendar.normalized(), twoDaysWithNoAdjust);
            assertEquals(twoDaysWithNoAdjust.normalized(), twoDaysWithNoAdjust);
        }
 public virtual void test_serialization()
 {
     assertSerialization(DaysAdjustment.ofCalendarDays(4, BDA_FOLLOW_SAT_SUN));
 }
 //-------------------------------------------------------------------------
 public virtual void coverage()
 {
     coverImmutableBean(DaysAdjustment.ofCalendarDays(4, BDA_FOLLOW_SAT_SUN));
 }
        public virtual void test_getResultCalendar3()
        {
            DaysAdjustment test = DaysAdjustment.ofCalendarDays(3);

            assertEquals(test.ResultCalendar, NO_HOLIDAYS);
        }
 public virtual void test_ofCalendarDays2_null()
 {
     assertThrowsIllegalArg(() => DaysAdjustment.ofCalendarDays(2, null));
 }