/*
* Rapid Beans Framework: TimeTest.java
*
* Copyright Martin Bluemel, 2008
*
* Nov 14, 2005
*/
package org.rapidbeans.domain.math;
import java.math.BigDecimal;
import junit.framework.TestCase;
/**
* Unit tests for class TimeOfDay.
*
* @author Martin Bluemel
*/
public final class TimeOfDayTest extends TestCase {
/**
* test constructor with string: simple integers with one or two digits will
* be interpreted as hours.
*/
public void testTimeOfDayHours() {
TimeOfDay time = new TimeOfDay("2");
assertEquals(new BigDecimal(2), time.getMagnitude());
assertSame(UnitTime.h, time.getUnit());
time = new TimeOfDay("11");
assertEquals(new BigDecimal(11), time.getMagnitude());
assertSame(UnitTime.h, time.getUnit());
}
/**
* test constructor with string: two integers (each one or two digits
* separated by ':'.
*/
public void testTimeOfDayMinutes() {
TimeOfDay time = new TimeOfDay("1:59");
assertEquals(new BigDecimal(60 + 59), time.getMagnitude());
assertSame(UnitTime.min, time.getUnit());
time = new TimeOfDay("23:00");
assertEquals(new BigDecimal(23 * 60), time.getMagnitude());
assertSame(UnitTime.min, time.getUnit());
}
/**
* test constructor with string: simple quntity coding coding with magnitude
* and unit.
*/
public void testTimeOfDayMinutesQuantity() {
TimeOfDay time = new TimeOfDay("1140 min");
assertEquals(1140, time.getMagnitudeLong());
assertEquals(UnitTime.min, time.getUnit());
}
/**
* test constructor with string.
*/
public void testTimeOfDaySeconds() {
TimeOfDay time = new TimeOfDay("23:02:09");
assertEquals(new BigDecimal(23 * 3600 + 2 * 60 + 9), time.getMagnitude());
assertSame(UnitTime.s, time.getUnit());
time = new TimeOfDay("9:58:12");
assertEquals(new BigDecimal(9 * 3600 + 58 * 60 + 12), time.getMagnitude());
assertSame(UnitTime.s, time.getUnit());
}
/**
* test toString().
*/
public void testToStringHours() {
TimeOfDay time = new TimeOfDay("0");
assertEquals("0", time.toString());
time = new TimeOfDay("02");
assertEquals("2", time.toString());
time = new TimeOfDay("23");
assertEquals("23", time.toString());
}
/**
* test toString().
*/
public void testToStringMinutes() {
TimeOfDay time = new TimeOfDay("23:00");
assertEquals("23:00", time.toString());
time = new TimeOfDay("8:51");
assertEquals("8:51", time.toString());
time = new TimeOfDay("08:55");
assertEquals("8:55", time.toString());
}
/**
* test toString().
*/
public void testToStringSeconds() {
TimeOfDay time = new TimeOfDay("23:02:09");
assertEquals("23:02:09", time.toString());
time = new TimeOfDay("9:58:12");
assertEquals("9:58:12", time.toString());
}
}