changeset 479:8a0c7f6be82e

Added test for messwert service.
author Raimund Renkert <raimund.renkert@intevation.de>
date Wed, 18 Feb 2015 11:46:08 +0100
parents 808983286514
children 9d5397aa2dce
files src/test/java/de/intevation/lada/LadaTest.java src/test/java/de/intevation/lada/test/Messwert.java
diffstat 2 files changed, 372 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/test/java/de/intevation/lada/LadaTest.java	Wed Feb 18 09:36:51 2015 +0100
+++ b/src/test/java/de/intevation/lada/LadaTest.java	Wed Feb 18 11:46:08 2015 +0100
@@ -29,6 +29,7 @@
 import de.intevation.lada.test.KommentarM;
 import de.intevation.lada.test.KommentarP;
 import de.intevation.lada.test.Messung;
+import de.intevation.lada.test.Messwert;
 import de.intevation.lada.test.Probe;
 import de.intevation.lada.test.Query;
 
@@ -46,13 +47,14 @@
 
     private static Logger logger = Logger.getLogger(LadaTest.class);
 
-    private static boolean verboseLogging = true;
+    private static boolean verboseLogging = false;
 
     private Probe probeTest;
     private Query queryTest;
     private Messung messungTest;
     private KommentarP kommentarPTest;
     private KommentarM kommentarMTest;
+    private Messwert messwertTest;
 
     private static List<Protocol> testProtocol;
 
@@ -62,6 +64,7 @@
         messungTest = new Messung();
         kommentarPTest = new KommentarP();
         kommentarMTest = new KommentarM();
+        messwertTest = new Messwert();
         testProtocol = new ArrayList<Protocol>();
     }
 
@@ -220,6 +223,36 @@
     }
 
     /**
+     * Testing GET Services.
+     */
+    @Test
+    @RunAsClient
+    public final void testA_MesswertGetAllServices(@ArquillianResource URL baseUrl)
+    throws Exception {
+        this.messwertTest.getAllService(baseUrl, testProtocol);
+    }
+
+    /**
+     * Testing GET Services.
+     */
+    @Test
+    @RunAsClient
+    public final void testA_MesswertGetByIdServices(@ArquillianResource URL baseUrl)
+    throws Exception {
+        this.messwertTest.getByIdService(baseUrl, testProtocol);
+    }
+
+    /**
+     * Testing GET Services.
+     */
+    @Test
+    @RunAsClient
+    public final void testA_MesswertGetFilterServices(@ArquillianResource URL baseUrl)
+    throws Exception {
+        this.messwertTest.filterService(baseUrl, testProtocol);
+    }
+
+    /**
      * Testing CREATE services.
      */
     @Test
@@ -241,6 +274,10 @@
             baseUrl,
             testProtocol,
             this.messungTest.getCreatedMessungId());
+        this.messwertTest.createService(
+            baseUrl,
+            testProtocol,
+            this.messungTest.getCreatedMessungId());
     }
 
     /**
@@ -288,12 +325,25 @@
     }
 
     /**
+     * Testing UPDATE services.
+     */
+    @Test
+    @RunAsClient
+    public final void testC_messwertUpdateService(@ArquillianResource URL baseUrl)
+    throws Exception {
+        Assert.assertNotNull(this.messwertTest.getCreatedMesswertId());
+        this.messwertTest.updateService(baseUrl, testProtocol);
+    }
+
+    /**
      * Testing DELETE services.
      */
     @Test
     @RunAsClient
     public final void testD_DeleteServices(@ArquillianResource URL baseUrl)
     throws Exception {
+        Assert.assertNotNull(this.messwertTest.getCreatedMesswertId());
+        this.messwertTest.deleteService(baseUrl, testProtocol);
         Assert.assertNotNull(this.kommentarMTest.getCreatedKommentarId());
         this.kommentarMTest.deleteService(baseUrl, testProtocol);
         Assert.assertNotNull(this.kommentarPTest.getCreatedKommentarId());
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/test/java/de/intevation/lada/test/Messwert.java	Wed Feb 18 11:46:08 2015 +0100
@@ -0,0 +1,321 @@
+/* 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;
+
+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.Protocol;
+
+/**
+ * Class containing test cases for messwert objects.
+ *
+ * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a>
+ */
+public class Messwert {
+
+    private static final String COMPARE_MESSWERT =
+        "{\"id\":1,\"grenzwertueberschreitung\":null,\"letzteAenderung\":" +
+        "1327305368000,\"mehId\":69,\"messfehler\":1.1,\"messgroesseId\":28," +
+        "\"messungsId\":749,\"messwert\":97.0,\"messwertNwg\":null," +
+        "\"nwgZuMesswert\":null}";
+
+    private static final String CREATE_MESSWERT =
+        "{\"messungsId\":MID,\"messgroesseId\":242,\"messwert\":1," +
+        "\"messwertNwg\":\"\",\"messfehler\":1,\"nwgZuMesswert\":3," +
+        "\"mehId\":207,\"grenzwertueberschreitung\":false," +
+        "\"letzteAenderung\":null}";
+
+    private List<Protocol> protocol;
+
+    private static Integer createdMesswertId;
+
+    public Integer getCreatedMesswertId() {
+        return createdMesswertId;
+    }
+
+    /**
+     * @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("MesswertService");
+        prot.setType("get all");
+        prot.setPassed(false);
+        protocol.add(prot);
+        /* Create a client*/
+        Client client = ClientBuilder.newClient();
+        WebTarget target = client.target(baseUrl + "messwert");
+        /* Request all objects*/
+        Response response = target.request().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("MesswertService");
+        prot.setType("get by Id");
+        prot.setPassed(false);
+        protocol.add(prot);
+        try {
+            /* Create a json object from static messwert string*/
+            JsonReader fromStringRreader =
+                Json.createReader(new StringReader(COMPARE_MESSWERT));
+            JsonObject staticMessung = fromStringRreader.readObject();
+            /* Create a client*/
+            Client client = ClientBuilder.newClient();
+            WebTarget target = client.target(baseUrl + "messwert/1");
+            prot.addInfo("messwertId", 1);
+            /* Request a object by id*/
+            Response response = target.request().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("MesswertService");
+        prot.setType("get by filter");
+        prot.setPassed(false);
+        protocol.add(prot);
+        try {
+            /* Create a client*/
+            Client client = ClientBuilder.newClient();
+            WebTarget target =
+                client.target(baseUrl + "messwert?messungId=1");
+            prot.addInfo("filter", "messungId=1");
+            /* Request the objects using the filter*/
+            Response response = target.request().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,
+        Integer messungId)
+    throws Exception {
+        System.out.print(".");
+        Protocol prot = new Protocol();
+        prot.setName("MesswertService");
+        prot.setType("create");
+        prot.setPassed(false);
+        protocol.add(prot);
+        try {
+            /* Create a client*/
+            Client client = ClientBuilder.newClient();
+            WebTarget target = client.target(baseUrl + "messwert");
+            /* Send a post request containing a new object*/
+            String mess = CREATE_MESSWERT.replace("MID", messungId.toString());
+            Response response = target.request().post(
+                    Entity.entity(mess, 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*/
+            createdMesswertId =
+                content.getJsonObject("data").getJsonNumber("id").intValue();
+            prot.addInfo("messwertId", createdMesswertId);
+            /* 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("MesswertService");
+        prot.setType("update");
+        prot.setPassed(false);
+        protocol.add(prot);
+        try {
+            /* Create a client*/
+            Client client = ClientBuilder.newClient();
+            WebTarget target =
+                client.target(baseUrl + "messwert/" + createdMesswertId);
+            prot.addInfo("messwertId", createdMesswertId);
+            /* Request a messwert with the saved id*/
+            Response response = target.request().get();
+            String entity = response.readEntity(String.class);
+            /* Try to parse the response*/
+            JsonReader reader = Json.createReader(new StringReader(entity));
+            JsonObject oldMesswert = reader.readObject().getJsonObject("data");
+            /* Change the mmtId*/
+            String updatedEntity =
+                oldMesswert.toString().replace("207", "69");
+            prot.addInfo("updated field", "mehId");
+            prot.addInfo("updated value", "207");
+            prot.addInfo("updated to", "69");
+            /* Send the updated messwert via put request*/
+            WebTarget putTarget = client.target(baseUrl + "messwert");
+            Response updated = putTarget.request().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(69,
+                updatedMessung.getJsonObject("data").getInt("mehId"));
+        }
+        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("MesswertService");
+        prot.setType("delete");
+        prot.setPassed(false);
+        protocol.add(prot);
+        try {
+            /* Create a client*/
+            Client client = ClientBuilder.newClient();
+            WebTarget target =
+                client.target(baseUrl + "messwert/" + createdMesswertId);
+            prot.addInfo("messwertId", createdMesswertId);
+            /* Delete a messwert with the saved id*/
+            Response response = target.request().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);
+    }
+}
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)