Mercurial > lada > lada-server
view src/test/java/de/intevation/lada/test/land/Messprogramm.java @ 790:4262acdd466d
Added, reordered and fixed tests.
author | Raimund Renkert <raimund.renkert@intevation.de> |
---|---|
date | Wed, 18 Nov 2015 15:39:21 +0100 |
parents | bc789d180439 |
children |
line wrap: on
line source
/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz * Software engineering by Intevation GmbH * * This file is Free Software under the GNU GPL (v>=3) * and comes with ABSOLUTELY NO WARRANTY! Check out * the documentation coming with IMIS-Labordaten-Application for details. */ package de.intevation.lada.test.land; import java.io.StringReader; import java.net.URL; import java.util.List; import javax.json.Json; import javax.json.JsonException; import javax.json.JsonObject; import javax.json.JsonReader; import javax.ws.rs.client.Client; import javax.ws.rs.client.ClientBuilder; import javax.ws.rs.client.Entity; import javax.ws.rs.client.WebTarget; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import org.junit.Assert; import de.intevation.lada.BaseTest; import de.intevation.lada.Protocol; /** * Class containing test cases for messprogramm objects. * * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> */ public class Messprogramm { private static final String COMPARE = "{\"id\":1,\"baId\":null," + "\"datenbasisId\":2,\"gemId\":\"11000000\",\"gueltigBis\":null," + "\"gueltigVon\":null,\"intervallOffset\":null,\"letzteAenderung\":" + "1381420248800,\"mediaDesk\":\"D: 50 90 01 06 02 05 00 00 00 00 00 00\"," + "\"mstId\":\"11010\",\"name\":null,\"netzbetreiberId\":\"11\"," + "\"ortId\":null,\"probeKommentar\":null,\"probeNehmerId\":null," + "\"probenartId\":3,\"probenintervall\":\"M\",\"teilintervallBis\":30," + "\"teilintervallVon\":1,\"test\":false,\"umwId\":\"N81\"}"; private static final String CREATE = "{\"baId\":null," + "\"datenbasisId\":2,\"gemId\":\"11000000\",\"gueltigBis\":null," + "\"gueltigVon\":null,\"intervallOffset\":null,\"letzteAenderung\":" + "1381413048800,\"mediaDesk\":\"D: 01 01 01 01 01 01 00 00 00 00 00 00\"," + "\"mstId\":\"11010\",\"name\":\"Mess1\",\"netzbetreiberId\":\"11\"," + "\"ortId\":null,\"probeKommentar\":null,\"probeNehmerId\":null," + "\"probenartId\":3,\"probenintervall\":\"M\",\"teilintervallBis\":30," + "\"teilintervallVon\":1,\"test\":false,\"umwId\":\"N11\"}"; private List<Protocol> protocol; private static Integer createdId; public Integer getCreatedId() { return createdId; } /** * @return The test protocol */ public List<Protocol> getProtocol() { return protocol; } /** * Test the GET Service by requesting all objects. * * @param baseUrl The url pointing to the test deployment. */ public final void getAllService(URL baseUrl, List<Protocol> protocol) throws Exception { System.out.print("."); Protocol prot = new Protocol(); prot.setName("MessprogrammService"); prot.setType("get all"); prot.setPassed(false); protocol.add(prot); /* Create a client*/ Client client = ClientBuilder.newClient(); WebTarget target = client.target(baseUrl + "messprogramm"); /* Request all objects*/ Response response = target.request() .header("X-SHIB-user", BaseTest.TEST_USER) .header("X-SHIB-roles", BaseTest.TEST_ROLES) .get(); String entity = response.readEntity(String.class); try{ /* Try to parse the response*/ JsonReader reader = Json.createReader(new StringReader(entity)); JsonObject content = reader.readObject(); /* Verify the response*/ Assert.assertTrue(content.getBoolean("success")); prot.addInfo("success", content.getBoolean("success")); Assert.assertEquals("200", content.getString("message")); prot.addInfo("message", content.getString("message")); Assert.assertNotNull(content.getJsonArray("data")); prot.addInfo("objects", content.getJsonArray("data").size()); } catch(JsonException je) { prot.addInfo("exception", je.getMessage()); Assert.fail(je.getMessage()); } prot.setPassed(true); } /** * Test the GET Service by requesting a single object by id. * * @param baseUrl The url pointing to the test deployment. */ public final void getByIdService(URL baseUrl, List<Protocol> protocol) throws Exception { System.out.print("."); Protocol prot = new Protocol(); prot.setName("MessprogrammService"); prot.setType("get by Id"); prot.setPassed(false); protocol.add(prot); try { /* Create a json object from static messprogramm string*/ JsonReader fromStringRreader = Json.createReader(new StringReader(COMPARE)); JsonObject staticMessung = fromStringRreader.readObject(); /* Create a client*/ Client client = ClientBuilder.newClient(); WebTarget target = client.target(baseUrl + "messprogramm/1"); prot.addInfo("messprogrammId", 1); /* Request a object by id*/ Response response = target.request() .header("X-SHIB-user", BaseTest.TEST_USER) .header("X-SHIB-roles", BaseTest.TEST_ROLES) .get(); String entity = response.readEntity(String.class); /* Try to parse the response*/ JsonReader fromServiceReader = Json.createReader(new StringReader(entity)); JsonObject content = fromServiceReader.readObject(); /* Verify the response*/ Assert.assertTrue(content.getBoolean("success")); prot.addInfo("success", content.getBoolean("success")); Assert.assertEquals("200", content.getString("message")); prot.addInfo("message", content.getString("message")); Assert.assertEquals(staticMessung, content.getJsonObject("data")); prot.addInfo("object", "equals"); } catch(JsonException je) { prot.addInfo("exception", je.getMessage()); Assert.fail(je.getMessage()); } prot.setPassed(true); } /** * Test the GET service using filters. * * @param baseUrl The url poining to the test deployment. */ public final void filterService(URL baseUrl, List<Protocol> protocol) { System.out.print("."); Protocol prot = new Protocol(); prot.setName("MessprogrammService"); prot.setType("get by filter"); prot.setPassed(false); protocol.add(prot); try { /* Create a client*/ Client client = ClientBuilder.newClient(); WebTarget target = client.target(baseUrl + "messprogramm?qid=1"); prot.addInfo("filter", "qid=1"); /* Request the objects using the filter*/ Response response = target.request() .header("X-SHIB-user", BaseTest.TEST_USER) .header("X-SHIB-roles", BaseTest.TEST_ROLES) .get(); String entity = response.readEntity(String.class); /* Try to parse the response*/ JsonReader reader = Json.createReader(new StringReader(entity)); JsonObject respObj = reader.readObject(); /* Verify the response*/ Assert.assertTrue(respObj.getBoolean("success")); prot.addInfo("success", respObj.getBoolean("success")); Assert.assertEquals("200", respObj.getString("message")); prot.addInfo("message", respObj.getString("message")); Assert.assertNotNull(respObj.getJsonArray("data")); prot.addInfo("objects", respObj.getJsonArray("data").size()); } catch(JsonException je) { prot.addInfo("exception", je.getMessage()); Assert.fail(je.getMessage()); } prot.setPassed(true); } /** * Test the CREATE Service. * * @param baseUrl The url pointing to the test deployment. */ public final void createService( URL baseUrl, List<Protocol> protocol) throws Exception { System.out.print("."); Protocol prot = new Protocol(); prot.setName("MessprogrammService"); prot.setType("create"); prot.setPassed(false); protocol.add(prot); try { /* Create a client*/ Client client = ClientBuilder.newClient(); WebTarget target = client.target(baseUrl + "messprogramm"); /* Send a post request containing a new object*/ Response response = target.request() .header("X-SHIB-user", BaseTest.TEST_USER) .header("X-SHIB-roles", BaseTest.TEST_ROLES) .post(Entity.entity(CREATE, MediaType.APPLICATION_JSON)); String entity = response.readEntity(String.class); /* Try to parse the response*/ JsonReader fromServiceReader = Json.createReader(new StringReader(entity)); JsonObject content = fromServiceReader.readObject(); /* Save the id*/ createdId = content.getJsonObject("data").getJsonNumber("id").intValue(); prot.addInfo("messprogrammId", createdId); /* Verify the response*/ Assert.assertTrue(content.getBoolean("success")); prot.addInfo("success", content.getBoolean("success")); Assert.assertEquals("200", content.getString("message")); prot.addInfo("message", content.getString("message")); } catch(JsonException je) { prot.addInfo("exception", je.getMessage()); Assert.fail(je.getMessage()); } prot.setPassed(true); } /** * Test the UPDATE Service. * * @param baseUrl The url pointing to the test deployment. */ public final void updateService(URL baseUrl, List<Protocol> protocol) throws Exception { System.out.print("."); Protocol prot = new Protocol(); prot.setName("MessprogrammService"); prot.setType("update"); prot.setPassed(false); protocol.add(prot); try { /* Create a client*/ Client client = ClientBuilder.newClient(); WebTarget target = client.target(baseUrl + "messprogramm/" + createdId); prot.addInfo("messprogrammId", createdId); /* Request a messprogramm with the saved id*/ Response response = target.request() .header("X-SHIB-user", BaseTest.TEST_USER) .header("X-SHIB-roles", BaseTest.TEST_ROLES) .get(); String entity = response.readEntity(String.class); /* Try to parse the response*/ JsonReader reader = Json.createReader(new StringReader(entity)); JsonObject oldMessung = reader.readObject().getJsonObject("data"); /* Change the mmtId*/ String updatedEntity = oldMessung.toString().replace("Mess1", "Mess2"); prot.addInfo("updated field", "name"); prot.addInfo("updated value", "Mess1"); prot.addInfo("updated to", "Mess2"); /* Send the updated messung via put request*/ WebTarget putTarget = client.target(baseUrl + "messprogramm/" + createdId); Response updated = putTarget.request() .header("X-SHIB-user", BaseTest.TEST_USER) .header("X-SHIB-roles", BaseTest.TEST_ROLES) .put(Entity.entity(updatedEntity, MediaType.APPLICATION_JSON)); /* Try to parse the response*/ JsonReader updatedReader = Json.createReader( new StringReader(updated.readEntity(String.class))); JsonObject updatedMessung = updatedReader.readObject(); /* Verify the response*/ Assert.assertTrue(updatedMessung.getBoolean("success")); prot.addInfo("success", updatedMessung.getBoolean("success")); Assert.assertEquals("200", updatedMessung.getString("message")); prot.addInfo("message", updatedMessung.getString("message")); Assert.assertEquals("Mess2", updatedMessung.getJsonObject("data").getString("name")); } catch(JsonException je) { prot.addInfo("exception", je.getMessage()); Assert.fail(je.getMessage()); } prot.setPassed(true); } /** * Test the DELETE Service. * * @param baseUrl The url pointing to the test deployment. */ public final void deleteService(URL baseUrl, List<Protocol> protocol) { System.out.print("."); Protocol prot = new Protocol(); prot.setName("MessungService"); prot.setType("delete"); prot.setPassed(false); protocol.add(prot); try { /* Create a client*/ Client client = ClientBuilder.newClient(); WebTarget target = client.target(baseUrl + "messprogramm/" + createdId); prot.addInfo("messprogrammId", createdId); /* Delete a messung with the saved id*/ Response response = target.request() .header("X-SHIB-user", BaseTest.TEST_USER) .header("X-SHIB-roles", BaseTest.TEST_ROLES) .delete(); String entity = response.readEntity(String.class); /* Try to parse the response*/ JsonReader reader = Json.createReader(new StringReader(entity)); JsonObject respObj = reader.readObject(); /* Verify the response*/ Assert.assertTrue(respObj.getBoolean("success")); prot.addInfo("success", respObj.getBoolean("success")); Assert.assertEquals("200", respObj.getString("message")); prot.addInfo("message", respObj.getString("message")); } catch(JsonException je) { prot.addInfo("exception", je.getMessage()); Assert.fail(je.getMessage()); } prot.setPassed(true); } }