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 TestMemberDevTimeCounter  {
016      
017      /**
018       * Test the DevTimeCounter abstraction.
019       * @throws Exception If problems occur.
020       */
021      @Test public void testMemberDevTimeCounter() throws Exception {
022        XMLGregorianCalendar tstamp1 = Tstamp.makeTimestamp("2007-08-01T00:00:00");
023        String member1 = "member1";
024        String member2 = "member2";
025        
026        MemberDevTimeCounter counter = new MemberDevTimeCounter();
027        assertEquals("Test empty", BigInteger.valueOf(0), counter.getTotalDevTime());
028        counter.addMemberDevEvent(member1, tstamp1);
029        assertEquals("Test first", BigInteger.valueOf(5), counter.getTotalDevTime());
030        counter.addMemberDevEvent(member2, tstamp1);
031        assertEquals("Test second", BigInteger.valueOf(10), counter.getTotalDevTime());
032    
033        assertEquals("Test third", BigInteger.valueOf(5), counter.getMemberDevTime(member1));
034        assertEquals("Test fourth", BigInteger.valueOf(5), counter.getMemberDevTime(member2));
035        assertEquals("Test fifth", 2, counter.getMembers().size());
036      }
037    }