001    package org.hackystat.utilities.time.interval;
002    
003    import junit.framework.TestCase;
004    
005    import org.hackystat.utilities.time.period.Day;
006    import org.hackystat.utilities.time.period.Week;
007    
008    /**
009     * Tests week interval.
010     * 
011     * @author Hongbing Kou
012     * @version $Id: TestWeekInterval.java,v 1.1.1.1 2005/10/20 23:56:40 johnson Exp $
013     */
014    public class TestWeekInterval extends TestCase {
015      
016      /**
017       * Tests week interval type.
018       * 
019       * @throws Exception If error in test.
020       */
021      public void testWeekInterval() throws Exception {
022        WeekInterval interval = new WeekInterval("03-Aug-2003 to 09-Aug-2003", 
023                                                 "28-Dec-2003 to 03-Jan-2004");
024        assertFalse("Test interval type is daily", interval.isDailyInterval());
025        assertTrue("Test interval type is not weekly", interval.isWeeklyInterval());
026        assertFalse("Test interval type is not monthly", interval.isMonthlyInterval());
027     
028        assertEquals("Checking week interval name", "Week", interval.getIntervalType());
029        
030        assertEquals("Test start week", new Week(Day.getInstance(2003, 7, 3)), interval.getStartWeek());
031        assertEquals("Test end week", new Week(Day.getInstance(2003, 11, 28)), interval.getEndWeek());
032       
033        interval = new WeekInterval("03-Aug-2003 to 09-Aug-2003", "03-Aug-2003 to 09-Aug-2003"); 
034            
035        assertEquals("Test toString() of WeekInterval", "Week Interval : 09-Aug-2003 ~ " 
036                        + "09-Aug-2003", interval.toString());
037      }
038      
039      /**
040       * Tests week interval constructor with single day.
041       * 
042       * @throws Exception If failed to construct interval.
043       */
044      public void testDayWeekInterval() throws Exception {
045        Day day1 = Day.getInstance(2005, 2, 3);
046        Day day2 = Day.getInstance(2005, 4, 3);
047        
048        WeekInterval interval = new WeekInterval("03-Mar-2005", "03-May-2005");
049    
050        assertFalse("Test interval type is daily", interval.isDailyInterval());
051        assertTrue("Test interval type is not weekly", interval.isWeeklyInterval());
052        assertFalse("Test interval type is not monthly", interval.isMonthlyInterval());
053     
054        assertEquals("Checking week interval name", "Week", interval.getIntervalType());
055        assertEquals("Test start week", new Week(day1), interval.getStartWeek());
056        assertEquals("Test end week", new Week(day2), interval.getEndWeek());
057      }
058    }