Add testing dirs
[proteocache.git] / testsrc / compbio / stat / collector / StatDBTester.java
diff --git a/testsrc/compbio/stat/collector/StatDBTester.java b/testsrc/compbio/stat/collector/StatDBTester.java
new file mode 100644 (file)
index 0000000..85bc81d
--- /dev/null
@@ -0,0 +1,143 @@
+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