Esempio n. 1
0
  @Test
  public void testDefaultDateIterationOverCenturyYearChange() {
    // Collection object to retain the iterated dates from the DateIterator
    List<Calendar> calsFromIter = new ArrayList<Calendar>();
    List<Calendar> calsExpected = new ArrayList<Calendar>();

    // Generate expected output
    Calendar iCal = (Calendar) startCal.clone();
    // normalize, if needed
    if (normalize) {
      while (iCal.get(calendarFieldNormalize) != calendarValueNormalize) {
        iCal.add(Calendar.DATE, -1);
      }
    }
    while (iCal.before(endCal)) {
      Calendar tempCal = (Calendar) iCal.clone();
      calsExpected.add(tempCal);
      iCal.add(calendarFieldIter, iterRate);
    }
    calsExpected.add((Calendar) iCal.clone());

    // Perform the iteration
    DateIterator dateIter =
        new DateIterator(
            startCal,
            endCal,
            calendarFieldIter,
            iterRate,
            normalize,
            calendarFieldNormalize,
            calendarValueNormalize);
    while (dateIter.hasNext()) {
      Calendar cal = dateIter.next();
      calsFromIter.add(cal);
    }

    // ***  DEBUGGING OUTPUT ***
    //      String start = DateUtil.get(startCal.getTime());
    //      String end = DateUtil.get(endCal.getTime());
    //      System.out.println("start:" + start + " end:" + end);
    //      for (Calendar cal : calsExpected) {
    //         String calStr = DateUtil.get(cal.getTime(), "MM/dd/yyyy hh:mm:ss:SS a");
    //         //         System.out.println("Expected: " + calStr);
    //      }
    //      for (Calendar cal : calsFromIter) {
    //         String calStr = DateUtil.get(cal.getTime(), "MM/dd/yyyy hh:mm:ss:SS a");
    //         //         System.out.println("Actual: " + calStr);
    //      }

    // Asserts
    for (Calendar cal : calsExpected) {
      assertTrue(
          "calsFromIter missing date: " + DateUtil.getMMDDYYHHMM(cal.getTime()),
          calsFromIter.contains(cal));
    }

    for (Calendar cal : calsFromIter) {
      assertTrue(
          "calsFromIter has extra date: " + DateUtil.getMMDDYYHHMM(cal.getTime()),
          calsExpected.contains(cal));
    }
  }