    1   /* TimespanCriteriaTest
    2    *
    3    * $Id: TimespanCriteriaTest.java 3287 2005-03-31 03:35:18Z stack-sf $
    4    *
    5    * Created on Apr 8, 2004
    6    *
    7    * Copyright (C) 2004 Internet Archive.
    8    *
    9    * This file is part of the Heritrix web crawler (crawler.archive.org).
    10   *
    11   * Heritrix is free software; you can redistribute it and/or modify
    12   * it under the terms of the GNU Lesser Public License as published by
    13   * the Free Software Foundation; either version 2.1 of the License, or
    14   * any later version.
    15   *
    16   * Heritrix is distributed in the hope that it will be useful,
    17   * but WITHOUT ANY WARRANTY; without even the implied warranty of
    18   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    19   * GNU Lesser Public License for more details.
    20   *
    21   * You should have received a copy of the GNU Lesser Public License
    22   * along with Heritrix; if not, write to the Free Software
    23   * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    24   */
    25  package org.archive.crawler.settings.refinements;
    26
    27  import java.text.DateFormat;
    28  import java.text.ParseException;
    29  import java.text.SimpleDateFormat;
    30  import java.util.Date;
    31  import java.util.TimeZone;
    32
    33  import junit.framework.TestCase;
    34
    35
    36  /***
    37   *
    38   * @author John Erik Halse
    39   *
    40   */
    41  public class TimespanCriteriaTest extends TestCase {
    42      public final void testIsWithinRefinementBounds() throws ParseException {
    43          DateFormat timeFormat;
    44          TimeZone TZ = TimeZone.getTimeZone("GMT");
    45          timeFormat = new SimpleDateFormat("HHmm");
    46          timeFormat.setTimeZone(TZ);
    47          Date now = timeFormat.parse(timeFormat.format(new Date()));
    48
    49          String nowTime = timeFormat.format(now);
    50          String beforeTime1 = timeFormat.format(new Date(now.getTime() -
    51              1000 * 60 * 2));
    52          String beforeTime2 = timeFormat.format(new Date(now.getTime() -
    53              1000 * 60 * 1));
    54          String afterTime1 = timeFormat.format(new Date(now.getTime() +
    55              1000 * 60 * 1));
    56
    57          // now is inside and before is less than after
    58          TimespanCriteria c = new TimespanCriteria(beforeTime1, afterTime1);
    59          assertTrue(c.isWithinRefinementBounds(null));
    60
    61          // now is equal to before and less than after
    62          c = new TimespanCriteria(nowTime, afterTime1);
    63          assertTrue(c.isWithinRefinementBounds(null));
    64
    65          // now is equal to before and less than after
    66          c = new TimespanCriteria(beforeTime1, nowTime);
    67          assertTrue(c.isWithinRefinementBounds(null));
    68
    69          // now is outside and before is less than after
    70          c = new TimespanCriteria(beforeTime1, beforeTime2);
    71          assertFalse(c.isWithinRefinementBounds(null));
    72
    73          // now is outside and before is greater than after
    74          c = new TimespanCriteria(afterTime1, beforeTime1);
    75          assertFalse(c.isWithinRefinementBounds(null));
    76
    77          // now is inside and before is greater than after
    78          c = new TimespanCriteria(beforeTime2, beforeTime1);
    79          assertTrue(c.isWithinRefinementBounds(null));
    80
    81          // now is equal to before and before is greater than after
    82          c = new TimespanCriteria(nowTime, beforeTime1);
    83          assertTrue(c.isWithinRefinementBounds(null));
    84
    85          // now is equal to before and before is greater than after
    86          c = new TimespanCriteria(afterTime1, nowTime);
    87          assertTrue(c.isWithinRefinementBounds(null));
    88  }
    89
    90  }