172a57db5e23c0e3286bf7aa01453030f2a8be8b
[jabaws.git] / testsrc / compbio / stat / collector / StatDBTester.java
1 package compbio.stat.collector;\r
2 \r
3 import static org.testng.Assert.assertEquals;\r
4 import static org.testng.Assert.assertNotNull;\r
5 \r
6 import java.sql.SQLException;\r
7 import java.sql.Timestamp;\r
8 import java.util.Calendar;\r
9 import java.util.Date;\r
10 import java.util.List;\r
11 \r
12 import org.testng.Assert;\r
13 import org.testng.annotations.BeforeClass;\r
14 import org.testng.annotations.Test;\r
15 \r
16 import compbio.stat.servlet.util.StatCollection;\r
17 import compbio.stat.servlet.util.Totals;\r
18 import compbio.ws.client.Services;\r
19 \r
20 public class StatDBTester {\r
21         StatDB statdb;\r
22 \r
23         @BeforeClass\r
24         public void init() {\r
25                 try {\r
26                         statdb = new StatDB(true);\r
27                 } catch (SQLException e) {\r
28                         e.printStackTrace();\r
29                         Assert.fail(e.getLocalizedMessage());\r
30                 }\r
31         }\r
32 \r
33         @Test\r
34         public void testReadYearDataAndShutdown() {\r
35                 Calendar cal = Calendar.getInstance();\r
36                 cal.roll(Calendar.YEAR, false);\r
37                 try {\r
38                         List<JobStat> jobs = statdb.readData(\r
39                                         new Timestamp(cal.getTimeInMillis()), new Timestamp(\r
40                                                         new Date().getTime()), Services.MuscleWS, false);\r
41                         assertNotNull(jobs);\r
42                         assertEquals(jobs.size(), 1294);\r
43                         statdb.shutdownDBServer();\r
44                 } catch (SQLException e) {\r
45                         e.printStackTrace();\r
46                         Assert.fail(e.getMessage());\r
47                 }\r
48                 // Test shutdown\r
49                 try {\r
50                         statdb.readData(new Timestamp(cal.getTimeInMillis()),\r
51                                         new Timestamp(new Date().getTime()), Services.MuscleWS,\r
52                                         false);\r
53                         Assert.fail("Should not reach this point");\r
54                 } catch (SQLException e) {\r
55                         assertEquals(e.getMessage(), "No current connection.");\r
56                 }\r
57 \r
58         }\r
59         @Test\r
60         public void testReadOneMonthData() {\r
61                 Calendar cal = Calendar.getInstance();\r
62                 cal.roll(Calendar.MONTH, false);\r
63                 try {\r
64                         List<JobStat> jobs = statdb.readData(\r
65                                         new Timestamp(cal.getTimeInMillis()), new Timestamp(\r
66                                                         new Date().getTime()), Services.TcoffeeWS, false);\r
67                         assertNotNull(jobs);\r
68                         assertEquals(jobs.size(), 47);\r
69 \r
70                         jobs = statdb.readData(new Timestamp(cal.getTimeInMillis()),\r
71                                         new Timestamp(new Date().getTime()), Services.ClustalWS,\r
72                                         false);\r
73 \r
74                         assertNotNull(jobs);\r
75                         assertEquals(jobs.size(), 144);\r
76 \r
77                         jobs = statdb.readData(new Timestamp(cal.getTimeInMillis()),\r
78                                         new Timestamp(new Date().getTime()), Services.MafftWS,\r
79                                         false);\r
80                         assertNotNull(jobs);\r
81                         assertEquals(jobs.size(), 149);\r
82 \r
83                         jobs = statdb.readData(new Timestamp(cal.getTimeInMillis()),\r
84                                         new Timestamp(new Date().getTime()), Services.ProbconsWS,\r
85                                         false);\r
86                         assertNotNull(jobs);\r
87                         assertEquals(jobs.size(), 12);\r
88 \r
89                         jobs = statdb.readData(new Timestamp(cal.getTimeInMillis()),\r
90                                         new Timestamp(new Date().getTime()), Services.MuscleWS,\r
91                                         false);\r
92                         assertNotNull(jobs);\r
93                         assertEquals(jobs.size(), 76);\r
94 \r
95                 } catch (SQLException e) {\r
96                         e.printStackTrace();\r
97                         Assert.fail(e.getMessage());\r
98                 }\r
99         }\r
100 \r
101         @Test\r
102         public void testGetEarliestRecord() {\r
103 \r
104                 try {\r
105                         StatDB db = new StatDB();\r
106                         Date earliestRec = db.getEarliestRecord();\r
107                         // System.out.println(earliestRec);\r
108                 } catch (SQLException e) {\r
109                         e.printStackTrace();\r
110                         Assert.fail(e.getLocalizedMessage());\r
111                 }\r
112 \r
113         }\r
114 \r
115         @Test\r
116         public void testVerifyJobsCount() {\r
117 \r
118                 try {\r
119                         Calendar cal = Calendar.getInstance();\r
120                         cal.add(Calendar.MONTH, -5);\r
121                         Timestamp from = new Timestamp(cal.getTimeInMillis());\r
122                         cal.add(Calendar.MONTH, 1);\r
123                         Timestamp to = new Timestamp(cal.getTimeInMillis());\r
124                         StatCollection sc = StatCollection.newStatCollecton(from, to);\r
125                         Totals t = Totals.sumStats(sc.getAllStat());\r
126 \r
127                         System.out.println(sc.getAllStat());\r
128                         StatDB db = new StatDB();\r
129                         assertEquals(t.getTotal(), db.getTotalJobsCount(from, to));\r
130                         assertEquals(t.getAbandoned(), db.getAbandonedCount(from, to));\r
131                         assertEquals(t.getCancelled(), db.getCancelledCount(from, to));\r
132                         assertEquals(t.getIncomplete(), db.getIncompleteCount(from, to));\r
133 \r
134                 } catch (SQLException e) {\r
135                         e.printStackTrace();\r
136                         Assert.fail(e.getLocalizedMessage());\r
137                 }\r
138 \r
139         }\r
140 }\r