Mercurial > hg > release > thermostat-0.7
changeset 748:9a66968f2bcb
Implement purge() in web service.
Reviewed-by: neugens
Review-thread: http://icedtea.classpath.org/pipermail/thermostat/2012-October/003842.html
author | Roman Kennke <rkennke@redhat.com> |
---|---|
date | Fri, 26 Oct 2012 13:12:46 +0200 |
parents | 098a78b25a40 |
children | 769d409c83b6 |
files | web/client/src/main/java/com/redhat/thermostat/web/client/RESTStorage.java web/client/src/test/java/com/redhat/thermostat/web/client/RESTStorageTest.java web/server/src/main/java/com/redhat/thermostat/web/server/RESTStorageEndPoint.java web/server/src/test/java/com/redhat/thermostat/web/server/RESTStorageEndpointTest.java |
diffstat | 4 files changed, 46 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/web/client/src/main/java/com/redhat/thermostat/web/client/RESTStorage.java Fri Oct 26 13:12:03 2012 +0200 +++ b/web/client/src/main/java/com/redhat/thermostat/web/client/RESTStorage.java Fri Oct 26 13:12:46 2012 +0200 @@ -253,8 +253,17 @@ @Override public void purge() { - // TODO Auto-generated method stub - + try { + HttpClient httpClient = new DefaultHttpClient(); + HttpPost httpPost = new HttpPost(endpoint + "/purge"); + HttpResponse response = httpClient.execute(httpPost); + int status = response.getStatusLine().getStatusCode(); + if (status != 200) { + throw new IOException("Server returned status: " + status); + } + } catch (IOException ex) { + throw new RuntimeException(ex); + } } @Override
--- a/web/client/src/test/java/com/redhat/thermostat/web/client/RESTStorageTest.java Fri Oct 26 13:12:03 2012 +0200 +++ b/web/client/src/test/java/com/redhat/thermostat/web/client/RESTStorageTest.java Fri Oct 26 13:12:46 2012 +0200 @@ -101,6 +101,8 @@ private String responseBody; private Map<String,String> headers; + private String method; + private String requestURI; private static Category category; private static Key<String> key1; @@ -136,6 +138,8 @@ storage.setEndpoint("http://localhost:" + port + "/"); storage.setAgentId(new UUID(123, 456)); headers = new HashMap<>(); + requestURI = null; + method = null; registerCategory(); } @@ -153,6 +157,9 @@ headers.put(headerName, request.getHeader(headerName)); } + method = request.getMethod(); + requestURI = request.getRequestURI(); + // Read request body. StringBuilder body = new StringBuilder(); Reader reader = request.getReader(); @@ -179,6 +186,8 @@ public void tearDown() throws Exception { headers = null; + requestURI = null; + method = null; storage = null; server.stop(); @@ -443,4 +452,11 @@ assertEquals("Hello World", new String(data)); } + + @Test + public void testPurge() { + storage.purge(); + assertEquals("POST", method); + assertTrue(requestURI.endsWith("/purge")); + } }
--- a/web/server/src/main/java/com/redhat/thermostat/web/server/RESTStorageEndPoint.java Fri Oct 26 13:12:03 2012 +0200 +++ b/web/server/src/main/java/com/redhat/thermostat/web/server/RESTStorageEndPoint.java Fri Oct 26 13:12:46 2012 +0200 @@ -83,9 +83,16 @@ saveFile(req, resp); } else if (cmd.equals("load-file")) { loadFile(req, resp); + } else if (cmd.equals("purge")) { + purge(req, resp); } } + private void purge(HttpServletRequest req, HttpServletResponse resp) { + storage.purge(); + resp.setStatus(HttpServletResponse.SC_OK); + } + private void loadFile(HttpServletRequest req, HttpServletResponse resp) throws IOException { String name = req.getParameter("file"); InputStream data = storage.loadFile(name);
--- a/web/server/src/test/java/com/redhat/thermostat/web/server/RESTStorageEndpointTest.java Fri Oct 26 13:12:03 2012 +0200 +++ b/web/server/src/test/java/com/redhat/thermostat/web/server/RESTStorageEndpointTest.java Fri Oct 26 13:12:46 2012 +0200 @@ -416,6 +416,18 @@ verify(mockStorage).loadFile("fluff"); } + @Test + public void testPurge() throws IOException { + String endpoint = getEndpoint(); + URL url = new URL(endpoint + "/purge"); + HttpURLConnection conn = (HttpURLConnection) url.openConnection(); + conn.setDoOutput(true); + conn.setRequestMethod("POST"); + int status = conn.getResponseCode(); + assertEquals(200, status); + verify(mockStorage).purge(); + } + private void registerCategory() { try { String endpoint = getEndpoint();