@Test public void testGetRequestsJoinIN() throws Exception { List<String> resources = Arrays.asList("widgets", "things"); List<RequestData> datas = dao.getRequests(new Query().properties("resource") .aggregate("count()").filter("resource", resources, Comparison.IN) .group("resource").sort("resource", SortOrder.ASC)); assertEquals(2, datas.size()); assertEquals("things", datas.get(0).getResources().get(0)); assertEquals("widgets", datas.get(1).getResources().get(0)); }
public long getCount(Query q) { q = q.clone(); q.getAggregates().clear(); q.getProperties().clear(); q.getGroupBy().clear(); q.setSortBy(null); q.setSortOrder(null); q.aggregate("count()"); org.hibernate.Query query = toQuery(q); long count = ((Number) query.uniqueResult()).longValue(); // factor in offset, count if (q.getOffset() != null) { count = Math.max(0, count - q.getOffset()); } if (q.getCount() != null) { count = Math.min(count, q.getCount()); } return count; }
@Test public void testGetRequestsCount() throws Exception { final List<Object> aggs = new ArrayList(); RequestDataVisitor v = new RequestDataVisitor() { public void visit(RequestData data, Object... aggregates) { aggs.addAll(Arrays.asList(aggregates)); } }; dao.getRequests(new Query().aggregate("count()").filter("path","/foo", Comparison.EQ), v); assertEquals(1, aggs.size()); assertEquals(4, ((Number)aggs.get(0)).intValue()); }
@Test public void testGetRequestsBetween2() throws Exception { // test that the query is inclusive, and test sorting List<RequestData> datas = dao.getRequests( new Query() .between( toDate("2010-07-23T15:56:44"), toDate("2010-07-23T16:16:44")) .sort("startTime", SortOrder.ASC)); assertCoveredInOrder(datas, 4, 5, 6); }
@Test public void testToQueryString() throws Exception { Date from = toDate("2010-07-23T15:56:44"); Date to = toDate("2010-07-23T16:16:44"); Query q = new Query().between(from, to); q.filter("service", "WFS", Comparison.EQ).and("status", "RUNNING", Comparison.EQ) .and("path", Arrays.asList("/foo", "/bar"), Comparison.IN); String qs = RequestResource.toQueryString(q); assertEquals('?', qs.charAt(0)); qs = qs.substring(1); Map<String,String> kvp = new HashMap(); for (String s : qs.split("&")) { kvp.put(s.split("=")[0], s.split("=")[1]); } assertEquals(from, RequestResource.DATE_FORMAT.parse(kvp.get("from"))); assertEquals(to, RequestResource.DATE_FORMAT.parse(kvp.get("to"))); assertEquals("service:EQ:WFS;status:EQ:RUNNING;path:IN:/foo,/bar", kvp.get("filter")); } }
public void testGetAllCSVQuery() throws Exception { RequestResource.CSVFormat format = new RequestResource.CSVFormat( new String[]{"id", "path", "startTime"}, monitor); ByteArrayOutputStream out = new ByteArrayOutputStream(); format.toRepresentation(new Query()).write(out); BufferedReader in = new BufferedReader(new InputStreamReader( new ByteArrayInputStream(out.toByteArray()))); String line = in.readLine(); assertEquals("id,path,startTime", line); Iterator<RequestData> it = monitor.getDAO().getRequests().iterator(); while((line = in.readLine()) != null) { assertTrue(it.hasNext()); RequestData data = it.next(); String expected = data.getId() + "," + data.getPath() + "," + DateUtil.serializeDateTime(data.getStartTime()); assertEquals(expected, line); } assertFalse(it.hasNext()); }
@Test public void testGetRequestsBetween2() throws Exception { //test that the query is inclusive, and test sorting List<RequestData> datas = dao.getRequests(new Query().between( toDate("2010-07-23T15:56:44"), toDate("2010-07-23T16:16:44")) .sort("startTime", SortOrder.ASC)); assertCoveredInOrder(datas, 4, 5, 6); }
@Test public void testGetRequestsJoin2() throws Exception { final List<RequestData> datas = new ArrayList(); final List<Object> aggs = new ArrayList(); dao.getRequests(new Query().properties("resource").aggregate("count()") .filter("resource", null, Comparison.NEQ).group("resource"), new RequestDataVisitor() { public void visit(RequestData data, Object... aggregates) { datas.add(data); aggs.add(aggregates[0]); } }); //assertEquals(3, datas.size()); for (RequestData data : datas) { System.out.println(data.getResources()); } }
@Test public void testGetRequestsJoin() throws Exception { List<RequestData> datas = dao.getRequests(new Query().properties("path", "resource") .filter("path","/foo", Comparison.EQ). group("path", "resource") .sort("resource", SortOrder.ASC)); assertEquals(3, datas.size()); assertEquals("stuff", datas.get(0).getResources().get(0)); assertEquals("things", datas.get(1).getResources().get(0)); assertEquals("widgets", datas.get(2).getResources().get(0)); } @Test