@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")); } }
@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 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 testGetDateRangeWithTimeZone() throws Exception { Calendar c = Calendar.getInstance(); c.setTime(toDate("2010-07-23T15:56:44")); long off = c.get(Calendar.ZONE_OFFSET) + c.get(Calendar.DST_OFFSET); off = off / 1000 / 60 / 60; String z = Math.abs(off) < 10 ? "0" + Math.abs(off) : ""+Math.abs(off); z += "00"; z = off < 0 ? "-" + z : z; Request req = new Request(); setKVP(req, "from", "2010-07-23T15:56:44+0000", "to", "2010-07-23T16:16:44+0000"); Response res = new Response(req); resource.init(null, req, res); Query q = (Query) resource.handleObjectGet(); List<RequestData> datas = (List<RequestData>) monitor.getDAO().getRequests(q); assertCoveredInOrder(datas, 6, 5, 4); }
protected RequestData data( long id, String path, String start, String end, String status, String owsService, String owsOperation, String... layers) throws ParseException { RequestData data = data(id, path, start, end, status); data.setService(owsService); data.setOperation(owsOperation); data.setResources(Arrays.asList(layers)); return data; }