001 package org.hackystat.dailyprojectdata.resource.unittest; 002 003 import static org.junit.Assert.assertEquals; 004 import static org.junit.Assert.assertTrue; 005 006 import java.math.BigInteger; 007 008 import org.hackystat.dailyprojectdata.client.DailyProjectDataClient; 009 import org.hackystat.dailyprojectdata.resource.unittest.jaxb.MemberData; 010 import org.hackystat.dailyprojectdata.resource.unittest.jaxb.UnitTestDailyProjectData; 011 import org.hackystat.dailyprojectdata.test.DailyProjectDataTestHelper; 012 import org.hackystat.sensorbase.client.SensorBaseClient; 013 import org.hackystat.sensorbase.resource.sensordata.jaxb.SensorDatas; 014 import org.hackystat.utilities.tstamp.Tstamp; 015 import org.junit.Test; 016 017 /** 018 * Runs test to exercise DPDResource. 019 * 020 * @author Pavel Senin, Philip Johnson. 021 * 022 */ 023 public class TestUnitTestRestApi extends DailyProjectDataTestHelper { 024 025 /** The user for this test case. */ 026 private String user = "TestUnitTest@hackystat.org"; 027 028 /** 029 * Test that GET {host}/unittest/{user}/default/{starttime} works properly. First, it creates a 030 * test user and sends some sample DevEvent data to the SensorBase. Then, it invokes the GET 031 * request and checks to see that it obtains the right answer. Finally, it deletes the data and 032 * the user. 033 * 034 * @throws Exception If problems occur. 035 */ 036 @Test 037 public void getDefaultUnitTestDPD() throws Exception { 038 // First, create a batch of DevEvent sensor data. 039 SensorDatas batchData = new SensorDatas(); 040 UnitTestTestHelper helper = new UnitTestTestHelper(); 041 batchData.getSensorData().add(helper.makePassUnitTest("2007-04-30T02:00:00", user)); 042 batchData.getSensorData().add(helper.makePassUnitTest("2007-04-30T02:10:00", user)); 043 batchData.getSensorData().add(helper.makeFailUnitTest("2007-04-29T23:55:00", user)); 044 batchData.getSensorData().add(helper.makeFailUnitTest("2007-05-01T00:01:00", user)); 045 046 // Connect to the sensorbase and register the DailyProjectDataDevEvent user. 047 SensorBaseClient.registerUser(getSensorBaseHostName(), user); 048 SensorBaseClient client = new SensorBaseClient(getSensorBaseHostName(), user, user); 049 client.authenticate(); 050 // Send the sensor data to the SensorBase. 051 client.putSensorDataBatch(batchData); 052 053 // Now connect to the DPD server. 054 DailyProjectDataClient dpdClient = new DailyProjectDataClient(getDailyProjectDataHostName(), 055 user, user); 056 dpdClient.authenticate(); 057 UnitTestDailyProjectData unitDPD = dpdClient.getUnitTest(user, "Default", Tstamp 058 .makeTimestamp("2007-04-30")); 059 assertTrue("Checking user", user.equalsIgnoreCase(unitDPD.getOwner())); 060 061 MemberData memberData = unitDPD.getMemberData().get(0); 062 063 assertEquals("Checking Failures", BigInteger.valueOf(0), memberData.getFailure()); 064 065 assertEquals("Checking Success", BigInteger.valueOf(2), memberData.getSuccess()); 066 067 } 068 }