/**
 * Test class for Time.
 *
 * @author  Dr. Jody Paul
 * @version CS1 Spring 2006
 */
public class TimeTest extends junit.framework.TestCase {
    /** Used by test case methods. */
    Time time0, time45, time60, time75, time3h14m, time5h75m;
        
    /**
     * Called before every test case method.
     * Creates time objects used by test case methods.
     */
    protected void setUp() {
        time0 = new Time();
        time45 = new Time(45);
        time60 = new Time(60);
        time75 = new Time(75);
        time3h14m = new Time(3, 14);
        time5h75m = new Time(5, 75);
    }

    /** Actual test of construction handled by setUp method. */
    public void testConstruction() { assertTrue(true); }

    /** Test the getHours() method. */
    public void testGetHours() {
        assertEquals(6, time5h75m.getHours());
        assertEquals(1, time75.getHours());
        assertEquals(3, time3h14m.getHours());
        assertEquals(0, time45.getHours());
        assertEquals(1, time60.getHours());
        assertEquals(0, time0.getHours());
    }

    /** Test the getMinutes() method. */
    public void testGetMinutes() {
        assertEquals(15, time5h75m.getMinutes());
        assertEquals(15, time75.getMinutes());
        assertEquals(14, time3h14m.getMinutes());
        assertEquals(45, time45.getMinutes());
        assertEquals(0, time60.getMinutes());
        assertEquals(0, time0.getMinutes());
    }

    /** Test the increment(Time t) method. */
    public void testIncrement() {
        Time timeT45 = time45.increment(time0);
        assertNotNull(timeT45);
        assertEquals(0, timeT45.getHours());
        assertEquals(45, timeT45.getMinutes());
        Time timeT1h45m = time60.increment(time45);
        assertNotNull(timeT1h45m);
        assertEquals(1, timeT1h45m.getHours());
        assertEquals(45, timeT1h45m.getMinutes());
        Time timeT9h29m = time5h75m.increment(time3h14m);
        assertNotNull(timeT9h29m);
        assertEquals(9, timeT9h29m.getHours());
        assertEquals(29, timeT9h29m.getMinutes());
    }
}
