001 package org.hackystat.dailyprojectdata.resource.commit; 002 003 import static org.junit.Assert.assertEquals; 004 import static org.junit.Assert.assertTrue; 005 006 import java.util.Date; 007 import java.util.List; 008 009 import javax.xml.datatype.XMLGregorianCalendar; 010 011 import org.hackystat.sensorbase.resource.sensordata.jaxb.SensorData; 012 import org.hackystat.utilities.tstamp.Tstamp; 013 import org.junit.Assert; 014 import org.junit.Before; 015 import org.junit.Test; 016 017 /** 018 * Tests if the CommitDataContainer stores and returns the correct data based on 019 * the wrapped data instances. 020 * @author aito 021 * 022 */ 023 public class TestCommitDataContainer { 024 /** The fields used to test the CoverageData instance. */ 025 private CommitDataContainer data = new CommitDataContainer(); 026 private String userAusten = "austen@hawaii.edu"; 027 private String userJulie = "jsakuda@hawaii.edu"; 028 private String userAaron = "kagawaa@hawaii.edu"; 029 030 /** Setup the CoverageData that is tested. */ 031 @Before 032 public void setUp() { 033 // First, create the test SensorData instances. 034 XMLGregorianCalendar runtimeCalendar = Tstamp.makeTimestamp(new Date().getTime()); 035 String runtimeString = runtimeCalendar.toString(); 036 SensorData sensorDataAusten01 = TestCommitData.createData(runtimeString, runtimeString, 037 userAusten, "C:\\foo.java", "10", "100"); 038 SensorData sensorDataAusten02 = TestCommitData.createData(runtimeString, runtimeString, 039 userAusten, "C:\\foo2.java", "11", "12"); 040 SensorData sensorDataJulie01 = TestCommitData.createData(runtimeString, runtimeString, 041 userJulie, "C:\\foo3.java", "10", "1"); 042 SensorData sensorDataJulie02 = TestCommitData.createData(runtimeString, runtimeString, 043 userJulie, "C:\\foo4.java", "12", "100"); 044 SensorData sensorDataAaron01 = TestCommitData.createData(runtimeString, runtimeString, 045 userAaron, "C:\\foo5.java", "99", "33"); 046 047 // Second, adds the sensor. 048 this.data.addCommitData(sensorDataAusten01); 049 this.data.addCommitData(sensorDataAusten02); 050 this.data.addCommitData(sensorDataJulie01); 051 this.data.addCommitData(sensorDataJulie02); 052 this.data.addCommitData(sensorDataAaron01); 053 } 054 055 /** Tests if the correct amount of lines added are returned. */ 056 @Test 057 public void testGetLinesAdded() { 058 assertEquals("The total lines added is incorrect.", 21, this.data 059 .getLinesAdded(this.userAusten)); 060 } 061 062 /** Tests if the correct amount of lines deleted are returned. */ 063 @Test 064 public void testGetLinesDeleted() { 065 assertEquals("The total lines deleted is incorrect.", 112, this.data 066 .getLinesDeleted(this.userAusten)); 067 } 068 069 070 /** Tests if the correct amount of commits by a user is returned. */ 071 @Test 072 public void testGetCommits() { 073 assertEquals("The total commits is incorrect.", 2, this.data.getCommits(this.userAusten)); 074 Assert.assertEquals("The total commits is incorrect.", 0, this.data 075 .getCommits("Non-ExistentUser")); 076 } 077 078 /** Tests if the correct owners of the wrapped SensorData are returned. */ 079 @Test 080 public void testGetOwners() { 081 List<String> owners = this.data.getOwners(); 082 assertEquals("The amount of owners is incorrect.", 3, owners.size()); 083 assertTrue("The owner " + userAusten + " does not exist.", owners 084 .contains("austen@hawaii.edu")); 085 assertTrue("The owner " + userJulie + " does not exist.", owners 086 .contains("jsakuda@hawaii.edu")); 087 assertTrue("The owner " + userAaron + " does not exist.", owners 088 .contains("kagawaa@hawaii.edu")); 089 } 090 091 /** Tests if the all data entries are returned. */ 092 @Test 093 public void testGetData() { 094 assertEquals("The total amount of data entries returned is incorrect.", 5, this.data 095 .getData().size()); 096 } 097 }