--- /dev/null
+package compbio.stat.collector;\r
+\r
+import static org.testng.Assert.assertEquals;\r
+import static org.testng.Assert.assertNotNull;\r
+\r
+import java.sql.SQLException;\r
+import java.sql.Timestamp;\r
+import java.util.Calendar;\r
+import java.util.Date;\r
+import java.util.List;\r
+\r
+import org.testng.Assert;\r
+import org.testng.annotations.BeforeClass;\r
+import org.testng.annotations.Test;\r
+\r
+import compbio.stat.servlet.util.StatCollection;\r
+import compbio.stat.servlet.util.Totals;\r
+import compbio.ws.client.Services;\r
+\r
+public class StatDBTester {\r
+ StatDB statdb;\r
+ Timestamp from;\r
+ Timestamp to;\r
+ \r
+ @BeforeClass(alwaysRun=true )\r
+ public void init() {\r
+ try {\r
+ statdb = new StatDB(true);\r
+ Calendar fromCal = Calendar.getInstance();\r
+ fromCal.set(2011, 4, 1);\r
+ \r
+ Calendar toCal = Calendar.getInstance();\r
+ toCal.set(2011, 5, 1);\r
+ from = new Timestamp(fromCal.getTimeInMillis());\r
+ to = new Timestamp(toCal.getTimeInMillis());\r
+ \r
+ } catch (SQLException e) {\r
+ e.printStackTrace();\r
+ Assert.fail(e.getLocalizedMessage());\r
+ }\r
+ }\r
+\r
+ /*\r
+ * This test fails if run with other tests. This is likely due to the fact that StatDB \r
+ * is initialised with connection to other then the test database from StatCollector class.\r
+ * TODO look at this\r
+ */\r
+ @Test(enabled = false)\r
+ public void testReadYearData() {\r
+ Calendar cal = Calendar.getInstance();\r
+ cal.set(2010, 4, 1);\r
+ try {\r
+ List<JobStat> jobs = statdb.readData(\r
+ new Timestamp(cal.getTimeInMillis()), to, Services.MuscleWS, false);\r
+ assertNotNull(jobs);\r
+ assertEquals(jobs.size(), 1294);\r
+ // statdb.shutdownDBServer();\r
+ } catch (SQLException e) {\r
+ e.printStackTrace();\r
+ Assert.fail(e.getMessage());\r
+ }\r
+\r
+ }\r
+\r
+ /*\r
+ * This test fails if run with other tests. This is likely due to the fact that StatDB \r
+ * is initialised with connection to other then the test database from StatCollector class.\r
+ * TODO look at this\r
+ */\r
+ @Test(enabled =false)\r
+ public void testReadOneMonthData() {\r
+ try {\r
+ List<JobStat> jobs = statdb.readData(from, to, Services.TcoffeeWS, false);\r
+ assertNotNull(jobs);\r
+ assertEquals(jobs.size(), 36);\r
+\r
+ jobs = statdb.readData(from,to, Services.ClustalWS,false);\r
+\r
+ assertNotNull(jobs);\r
+ assertEquals(jobs.size(), 137);\r
+\r
+ jobs = statdb.readData(from, to, Services.MafftWS,false);\r
+ assertNotNull(jobs);\r
+ assertEquals(jobs.size(), 136);\r
+\r
+ jobs = statdb.readData(from,to, Services.ProbconsWS,false);\r
+ assertNotNull(jobs);\r
+ assertEquals(jobs.size(), 9);\r
+\r
+ jobs = statdb.readData(from,to, Services.MuscleWS,false);\r
+ assertNotNull(jobs);\r
+ assertEquals(jobs.size(), 63);\r
+\r
+ } catch (SQLException e) {\r
+ e.printStackTrace();\r
+ Assert.fail(e.getMessage());\r
+ }\r
+ }\r
+\r
+ /*\r
+ * This test fails if run with other tests. This is likely due to the fact that StatDB \r
+ * is initialised with connection to other then the test database from StatCollector class.\r
+ * TODO look at this\r
+ */\r
+ @Test(enabled=false)\r
+ public void testGetEarliestRecord() {\r
+ try {\r
+ Date earliestRec = statdb.getEarliestRecord();\r
+ \r
+ assertEquals(1278543600000L, earliestRec.getTime());\r
+ } catch (SQLException e) {\r
+ e.printStackTrace();\r
+ Assert.fail(e.getLocalizedMessage());\r
+ }\r
+\r
+ }\r
+\r
+ @Test(sequential=true)\r
+ public void testVerifyJobsCount() {\r
+\r
+ try {\r
+ Calendar cal = Calendar.getInstance();\r
+ cal.add(Calendar.MONTH, -5);\r
+ Timestamp from = new Timestamp(cal.getTimeInMillis());\r
+ cal.add(Calendar.MONTH, 1);\r
+ Timestamp to = new Timestamp(cal.getTimeInMillis());\r
+ StatCollection sc = StatCollection.newStatCollecton(from, to);\r
+ Totals t = Totals.sumStats(sc.getAllStat());\r
+\r
+ //System.out.println(sc.getAllStat());\r
+ \r
+ assertEquals(t.getTotal(), statdb.getTotalJobsCount(from, to));\r
+ assertEquals(t.getAbandoned(), statdb.getAbandonedCount(from, to));\r
+ assertEquals(t.getCancelled(), statdb.getCancelledCount(from, to));\r
+ assertEquals(t.getIncomplete(), statdb.getIncompleteCount(from, to));\r
+\r
+ } catch (SQLException e) {\r
+ e.printStackTrace();\r
+ Assert.fail(e.getLocalizedMessage());\r
+ }\r
+\r
+ }\r
+}\r