package org.rapidbeans.core.basic; import java.text.DateFormat; import java.text.ParseException; import java.util.Locale; import junit.framework.TestCase; import org.rapidbeans.domain.math.Time; import org.rapidbeans.test.WorkTime; /** * Unit Test for domain class WorkTime. * * @author Martin Bluemel */ public class WorkTimeTest extends TestCase { /** * Date formatter. */ static final DateFormat DFDATE = DateFormat.getDateInstance(DateFormat.MEDIUM, Locale.GERMAN); /** * Date formatter. */ static final DateFormat DFTIME = DateFormat .getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM, Locale.GERMAN); /** * Date formatter. */ static final DateFormat DFTIMELONG = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.LONG, Locale.GERMAN); /** * Constructor test: the constructor initializes all date attribute to empty * (null). */ public void testWorkTime() { WorkTime worktime = new WorkTime(); assertEquals(null, worktime.getFrom()); assertEquals(null, worktime.getTo()); assertEquals(null, worktime.getTime()); } /** * setting "day" should be allowed if from is set to the same date. * * @throws ParseException * in case of date parsing error */ public void testSetDay() throws ParseException { WorkTime worktime = new WorkTime(); worktime.setFrom(DFTIME.parse("11.11.2005 04:30:00")); assertEquals(DFTIME.parse("11.11.2005 04:30:00"), worktime.getFrom()); } /** * setting from should always adapt day. * * @throws ParseException * in case of date parsing error */ public void testSetFrom() throws ParseException { WorkTime worktime = new WorkTime(); worktime.setFrom(DFTIME.parse("14.10.1964 04:30:00")); assertEquals(DFTIME.parse("14.10.1964 04:30:00"), worktime.getFrom()); } /** * setting "to" should recompute time if "from" is set before. * * @throws ParseException * in case of date parsing error */ public void testSetToWithFromSetBefore() throws ParseException { WorkTime worktime = new WorkTime(); assertNull(worktime.getTime()); worktime.setFrom(DFTIME.parse("14.10.1964 04:30:00")); assertNull(worktime.getTime()); worktime.setTo(DFTIME.parse("14.10.1964 05:31:00")); assertEquals(61, ((Time) worktime.getTime()).getMagnitudeLong()); } /** * setting "from" should also recompute time if "to" is set before. * * @throws ParseException * in case of date parsing error */ public void testSetFromWithToSetBefore() throws ParseException { WorkTime worktime = new WorkTime(); assertNull(worktime.getTime()); worktime.setTo(DFTIME.parse("14.10.1964 05:31:00")); assertNull(worktime.getTime()); worktime.setFrom(DFTIME.parse("14.10.1964 04:30:00")); assertEquals(61, ((Time) worktime.getTime()).getMagnitudeLong()); } }