001    package org.hackystat.dailyprojectdata.resource.devtime;
002    
003    import static org.junit.Assert.assertEquals;
004    
005    import java.math.BigInteger;
006    
007    import javax.xml.datatype.XMLGregorianCalendar;
008    import org.hackystat.utilities.tstamp.Tstamp;
009    import org.junit.Test;
010    
011    /**
012     * Tests the DevTimeCounter.
013     * @author Philip Johnson
014     */
015    public class TestDevTimeCounter  {
016      
017      /**
018       * Test the DevTimeCounter abstraction.
019       * @throws Exception If problems occur.
020       */
021      @Test public void testDevTimeCounter() throws Exception {
022        XMLGregorianCalendar tstamp1 = Tstamp.makeTimestamp("2007-08-01T00:00:00");
023        XMLGregorianCalendar tstamp2 = Tstamp.makeTimestamp("2007-08-01T00:04:59");
024        XMLGregorianCalendar tstamp3 = Tstamp.makeTimestamp("2007-08-01T00:05:00");
025        XMLGregorianCalendar tstamp4 = Tstamp.makeTimestamp("2007-08-01T00:05:01");
026        XMLGregorianCalendar tstamp5 = Tstamp.makeTimestamp("2007-08-01T00:10:00");
027        XMLGregorianCalendar tstamp6 = Tstamp.makeTimestamp("2007-08-01T23:59:59");
028        
029        DevTimeCounter counter = new DevTimeCounter();
030        assertEquals("Test empty", BigInteger.valueOf(0), counter.getDevTime());
031        counter.addDevEvent(tstamp1);
032        assertEquals("Test first", BigInteger.valueOf(5), counter.getDevTime());
033        counter.addDevEvent(tstamp2);
034        assertEquals("Test second", BigInteger.valueOf(5), counter.getDevTime());
035        counter.addDevEvent(tstamp3);
036        assertEquals("Test third", BigInteger.valueOf(10), counter.getDevTime());
037        counter.addDevEvent(tstamp4);
038        assertEquals("Test fourth", BigInteger.valueOf(10), counter.getDevTime());
039        counter.addDevEvent(tstamp5);
040        assertEquals("Test fifth", BigInteger.valueOf(15), counter.getDevTime());
041        counter.addDevEvent(tstamp6);
042        assertEquals("Test sixth", BigInteger.valueOf(20), counter.getDevTime());
043      }
044    }