[Lada-commits] [PATCH 4 of 6] Make tests based on the http action, not the object type
Wald Commits
scm-commit at wald.intevation.org
Mon Feb 16 15:25:01 CET 2015
# HG changeset patch
# User Raimund Renkert <raimund.renkert at intevation.de>
# Date 1424096675 -3600
# Node ID 66414517e25e99427ae8561ac073ee15c73c78d8
# Parent 2f42128de67b32d1b129f8c642768ba558af4aee
Make tests based on the http action, not the object type.
This is to...
* ... ensure that parent objects exist while creating an object.
- To create a Messung object a Probe object exist.
* ... ensure all objects created while testing the services are deleted.
diff -r 2f42128de67b -r 66414517e25e src/test/java/de/intevation/lada/LadaTest.java
--- a/src/test/java/de/intevation/lada/LadaTest.java Mon Feb 16 15:15:27 2015 +0100
+++ b/src/test/java/de/intevation/lada/LadaTest.java Mon Feb 16 15:24:35 2015 +0100
@@ -14,13 +14,18 @@
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.arquillian.test.api.ArquillianResource;
import org.jboss.shrinkwrap.api.ShrinkWrap;
+import org.jboss.shrinkwrap.api.asset.EmptyAsset;
import org.jboss.shrinkwrap.api.spec.WebArchive;
import org.junit.Assert;
+import org.junit.FixMethodOrder;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.junit.runners.MethodSorters;
-import de.intevation.lada.test.ProbeServiceTest;
-import de.intevation.lada.test.QueryServiceTest;
+import de.intevation.lada.test.CreateTests;
+import de.intevation.lada.test.DeleteTests;
+import de.intevation.lada.test.GetTests;
+import de.intevation.lada.test.UpdateTests;
/**
@@ -29,43 +34,83 @@
* @author <a href="mailto:rrenkert at intevation.de">Raimund Renkert</a>
*/
@RunWith(Arquillian.class)
+ at FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class LadaTest {
+ private GetTests get;
+
+ private CreateTests create;
+
+ private UpdateTests update;
+
+ private DeleteTests delete;
+
+ public LadaTest() {
+ get = new GetTests();
+ create = new CreateTests();
+ update = new UpdateTests();
+ delete = new DeleteTests();
+ }
+
/**
* Create a deployable WAR archive.
- * */
- @Deployment
+ */
+ @Deployment(testable=true)
public static WebArchive createDeployment() throws Exception {
return ShrinkWrap.create(WebArchive.class, "lada-basis-test.war")
.addPackages(true, Package.getPackage("de.intevation.lada"))
- .addClass(QueryServiceTest.class)
.addAsResource("log4j.properties", "log4j.properties")
.addAsResource("queryconf.json", "queryconf.json")
+ .addAsWebInfResource(EmptyAsset.INSTANCE, "beans.xml")
.addAsResource("META-INF/test-persistence.xml",
"META-INF/persistence.xml");
}
/**
- * Testing the QueryService.
+ * Testing GET Services.
*/
@Test
@RunAsClient
- public final void testQueryService(@ArquillianResource URL baseUrl)
+ public final void testA_GetServices(@ArquillianResource URL baseUrl)
throws Exception {
- Assert.assertNotNull(baseUrl);
- QueryServiceTest queryServiceTest = new QueryServiceTest();
- queryServiceTest.test(baseUrl);
+ this.get.test(baseUrl);
}
/**
- * Testing the ProbeService.
+ * Testing CREATE services.
*/
@Test
@RunAsClient
- public final void testProbeService(@ArquillianResource URL baseUrl)
+ public final void testB_CreateServices(@ArquillianResource URL baseUrl)
throws Exception {
- Assert.assertNotNull(baseUrl);
- ProbeServiceTest test = new ProbeServiceTest();
- test.test(baseUrl);
+ this.create.test(baseUrl);
+ }
+
+ /**
+ * Testing UPDATE services.
+ */
+ @Test
+ @RunAsClient
+ public final void testC_UpdateServices(@ArquillianResource URL baseUrl)
+ throws Exception {
+ Assert.assertNotNull(this.create.getCreatedProbeId());
+ this.update.test(
+ baseUrl,
+ this.create.getCreatedProbeId(),
+ this.create.getCreatedMessungId());
+ }
+
+ /**
+ * Testing DELETE services.
+ */
+ @Test
+ @RunAsClient
+ public final void testD_DeleteServices(@ArquillianResource URL baseUrl)
+ throws Exception {
+ Assert.assertNotNull(this.create.getCreatedProbeId());
+ this.delete.test(
+ baseUrl,
+ this.create.getCreatedProbeId(),
+ this.create.getCreatedMessungId());
}
}
diff -r 2f42128de67b -r 66414517e25e src/test/java/de/intevation/lada/test/CreateTests.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/test/java/de/intevation/lada/test/CreateTests.java Mon Feb 16 15:24:35 2015 +0100
@@ -0,0 +1,138 @@
+/* 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 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;
+
+/**
+ * Class to test all CREATE services.
+ *
+ * @author <a href="mailto:rrenkert at intevation.de">Raimund Renkert</a>
+ */
+public class CreateTests {
+
+ private static final String CREATE_PROBE =
+ "{\"baId\":\"1\",\"datenbasisId\":2,\"erzeugerId\":\"\"," +
+ "\"hauptprobenNr\":\"1234567890\",\"media\":\"\",\"mediaDesk\":" +
+ "\"\",\"mittelungsdauer\":\"\",\"mpKat\":\"\",\"mplId\":\"\"," +
+ "\"mprId\":\"\",\"mstId\":\"11010\",\"netzbetreiberId\":\"11\"," +
+ "\"probeNehmerId\":3,\"probenartId\":1,\"test\":true,\"umwId\":" +
+ "\"A1\",\"letzteAenderung\":\"2015-02-09T10:58:36\"" +
+ ",\"probeentnahmeBeginn\":\"2015-02-08T10:58:36\"," +
+ "\"probeentnahmeEnde\":\"2015-02-09T10:58:36\",\"solldatumBeginn\":" +
+ "\"2015-02-09T10:58:36\",\"solldatumEnde\":\"2015-02-09T10:58:36\"}";
+
+ private static final String CREATE_MESSUNG =
+ "{\"probeId\":\"PID\",\"mmtId\":\"A4\",\"nebenprobenNr\":\"10R1\"," +
+ "\"messdauer\":10,\"fertig\":false,\"letzteAenderung\":null," +
+ "\"geplant\":true,\"messzeitpunkt\":\"2015-02-09T10:58:36\"}";
+
+
+ private static Integer createdProbeId;
+ private static Integer createdMessungId;
+
+ public Integer getCreatedProbeId() {
+ return createdProbeId;
+ }
+
+ public Integer getCreatedMessungId() {
+ return createdMessungId;
+ }
+
+ /**
+ * Main entry point in this class to start the tests.
+ *
+ * @param baseUrl The url pointing to the test deployment.
+ */
+ public final void test(URL baseUrl) throws Exception {
+ System.out.println("\nStarting test on CREATE Services:");
+ probeCreateService(baseUrl);
+ messungCreateService(baseUrl);
+ }
+
+ /**
+ * Test the CREATE Service.
+ *
+ * @param baseUrl The url pointing to the test deployment.
+ */
+ private final void probeCreateService(URL baseUrl)
+ throws Exception {
+ System.out.println("Testing ProbeService: ");
+ try {
+ /* Create a client*/
+ Client client = ClientBuilder.newClient();
+ WebTarget target = client.target(baseUrl + "probe");
+ /* Send a post request containing a new probe*/
+ Response response = target.request().post(
+ Entity.entity(CREATE_PROBE, 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 probeid*/
+ createdProbeId =
+ content.getJsonObject("data").getJsonNumber("id").intValue();
+ /* Verify the response*/
+ Assert.assertTrue(content.getBoolean("success"));
+ Assert.assertEquals("200", content.getString("message"));
+ }
+ catch(JsonException je) {
+ Assert.fail(je.getMessage());
+ }
+ System.out.println("passed");
+ }
+
+ /**
+ * Test the messung CREATE Service.
+ *
+ * @param baseUrl The url pointing to the test deployment.
+ */
+ private final void messungCreateService(URL baseUrl)
+ throws Exception {
+ System.out.println("Testing MessungService: ");
+ try {
+ /* Create a client*/
+ Client client = ClientBuilder.newClient();
+ WebTarget target = client.target(baseUrl + "messung");
+ /* Send a post request containing a new probe*/
+ String mess = CREATE_MESSUNG.replace("PID", createdProbeId.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 probeid*/
+ createdMessungId =
+ content.getJsonObject("data").getJsonNumber("id").intValue();
+ /* Verify the response*/
+ Assert.assertTrue(content.getBoolean("success"));
+ Assert.assertEquals("200", content.getString("message"));
+ }
+ catch(JsonException je) {
+ Assert.fail(je.getMessage());
+ }
+ System.out.println("passed");
+ }
+}
diff -r 2f42128de67b -r 66414517e25e src/test/java/de/intevation/lada/test/DeleteTests.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/test/java/de/intevation/lada/test/DeleteTests.java Mon Feb 16 15:24:35 2015 +0100
@@ -0,0 +1,107 @@
+/* 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 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.WebTarget;
+import javax.ws.rs.core.Response;
+
+import org.junit.Assert;
+
+/**
+ * Class to test all DELETE services.
+ *
+ * @author <a href="mailto:rrenkert at intevation.de">Raimund Renkert</a>
+ */
+public class DeleteTests {
+
+ private Integer probeId;
+
+ private Integer messungId;
+
+ /**
+ * Main entry point in this class to start the tests.
+ *
+ * @param baseUrl The url pointing to the test deployment.
+ */
+ public final void test(
+ URL baseUrl,
+ Integer probeId,
+ Integer messungId)
+ throws Exception {
+ System.out.println("\nStarting test on DELETE Services:");
+ this.probeId = probeId;
+ this.messungId = messungId;
+ messungDeleteService(baseUrl);
+ probeDeleteService(baseUrl);
+ }
+
+ /**
+ * Test the DELETE Service.
+ *
+ * @param baseUrl The url pointing to the test deployment.
+ */
+ private final void probeDeleteService(URL baseUrl) {
+ System.out.println("Testing delete: ");
+ try {
+ /* Create a client*/
+ Client client = ClientBuilder.newClient();
+ WebTarget target =
+ client.target(baseUrl + "probe/" + this.probeId);
+ /* Delete a probe with the id saved when created a probe*/
+ 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"));
+ Assert.assertEquals("200", respObj.getString("message"));
+ }
+ catch(JsonException je) {
+ Assert.fail(je.getMessage());
+ }
+ System.out.println("passed");
+ }
+
+ /**
+ * Test the messung DELETE Service.
+ *
+ * @param baseUrl The url pointing to the test deployment.
+ */
+ private final void messungDeleteService(URL baseUrl) {
+ System.out.println("Testing Messung: ");
+ try {
+ /* Create a client*/
+ Client client = ClientBuilder.newClient();
+ WebTarget target =
+ client.target(baseUrl + "messung/" + this.messungId);
+ /* Delete a probe with the id saved when created a probe*/
+ 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"));
+ Assert.assertEquals("200", respObj.getString("message"));
+ }
+ catch(JsonException je) {
+ Assert.fail(je.getMessage());
+ }
+ System.out.println("passed");
+ }
+}
diff -r 2f42128de67b -r 66414517e25e src/test/java/de/intevation/lada/test/GetTests.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/test/java/de/intevation/lada/test/GetTests.java Mon Feb 16 15:24:35 2015 +0100
@@ -0,0 +1,280 @@
+/* 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 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.WebTarget;
+import javax.ws.rs.core.Response;
+
+import org.junit.Assert;
+
+/**
+ * Class to test all GET services.
+ *
+ * @author <a href="mailto:rrenkert at intevation.de">Raimund Renkert</a>
+ */
+public class GetTests {
+
+ private static final String COMPARE_PROBE =
+ "{\"id\":1,\"baId\":\"1\",\"datenbasisId\":2," +
+ "\"letzteAenderung\":1339570306000,\"media\":\"Trinkwasser " +
+ "Zentralversorgung Oberflächenwasser aufbereitet\",\"mediaDesk\":" +
+ "\"D: 59 04 01 00 05 05 01 02 00 00 00 00\",\"mittelungsdauer\":" +
+ "null,\"mstId\":\"06010\",\"netzbetreiberId\":\"06\"," +
+ "\"probeentnahmeBeginn\":1336467600000,\"probeentnahmeEnde\":" +
+ "null,\"probenartId\":1,\"test\":false,\"umwId\":\"N72\"," +
+ "\"erzeugerId\":null,\"mpKat\":\"1\",\"mplId\":null,\"mprId\":3749," +
+ "\"probeNehmerId\":726,\"solldatumBeginn\":1336341600000," +
+ "\"solldatumEnde\":1336939199000,\"probeIdAlt\":\"000007581034X\"," +
+ "\"hauptprobenNr\":\"120510002\"}";
+
+ private static final String COMPARE_MESSUNG =
+ "{\"id\":1,\"fertig\":true,\"letzteAenderung\":1331536340000," +
+ "\"messdauer\":73929,\"messzeitpunkt\":1329139620000,\"mmtId\":" +
+ "\"G1\",\"probeId\":575,\"nebenprobenNr\":\"01G1\",\"geplant\":true," +
+ "\"messungsIdAlt\":1}";
+
+ /**
+ * Main entry point in this class to start the tests.
+ *
+ * @param baseUrl The url pointing to the test deployment.
+ */
+ public final void test(URL baseUrl) throws Exception {
+ System.out.println("\nStarting test on GET Services:");
+ queryGetService(baseUrl);
+ probeGetAllService(baseUrl);
+ probeGetByIdService(baseUrl);
+ probeFilterService(baseUrl);
+ messungGetAllService(baseUrl);
+ messungGetByIdService(baseUrl);
+ messungFilterService(baseUrl);
+ }
+
+ /**
+ * Test the GET Service by requesting all queries.
+ *
+ * @param baseUrl The url pointing to the test deployment.
+ */
+ private final void queryGetService(URL baseUrl)
+ throws Exception {
+ System.out.println("Testing QueryService: ");
+ /* Create a client*/
+ Client client = ClientBuilder.newClient();
+ WebTarget target = client.target(baseUrl + "query");
+ /* Request all queries*/
+ 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();
+ /* Verfiy the response*/
+ Assert.assertTrue(content.getBoolean("success"));
+ Assert.assertEquals("200", content.getString("message"));
+ Assert.assertNotNull(content.getJsonArray("data"));
+ }
+ catch(JsonException je) {
+ Assert.fail(je.getMessage());
+ }
+ System.out.println("passed");
+ }
+
+ /**
+ * Test the GET Service by requesting all probe objects.
+ *
+ * @param baseUrl The url pointing to the test deployment.
+ */
+ private final void probeGetAllService(URL baseUrl)
+ throws Exception {
+ System.out.println("Testing ProbeService (All): ");
+ /* Create a client*/
+ Client client = ClientBuilder.newClient();
+ WebTarget target = client.target(baseUrl + "probe");
+ /* Request all probe 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"));
+ Assert.assertEquals("200", content.getString("message"));
+ }
+ catch(JsonException je) {
+ Assert.fail(je.getMessage());
+ }
+ System.out.println("passed");
+ }
+
+ /**
+ * Test the GET Service by requesting a single probe object by id.
+ *
+ * @param baseUrl The url pointing to the test deployment.
+ */
+ private final void probeGetByIdService(URL baseUrl)
+ throws Exception {
+ System.out.println("Testing ProbeService (byId): ");
+ try {
+ /* Create a json object from static probe string*/
+ JsonReader fromStringRreader =
+ Json.createReader(new StringReader(COMPARE_PROBE));
+ JsonObject staticProbe = fromStringRreader.readObject();
+ /* Create a client*/
+ Client client = ClientBuilder.newClient();
+ WebTarget target = client.target(baseUrl + "probe/1");
+ /* Request a probe 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"));
+ Assert.assertEquals("200", content.getString("message"));
+ Assert.assertEquals(staticProbe,
+ content.getJsonObject("data"));
+ }
+ catch(JsonException je) {
+ Assert.fail(je.getMessage());
+ }
+ System.out.println("passed");
+ }
+
+ /**
+ * Test the GET probe service using filters.
+ *
+ * @param baseUrl The url poining to the test deployment.
+ */
+ private final void probeFilterService(URL baseUrl) {
+ System.out.println("Testing ProbeService (filter): ");
+ try {
+ /* Create a client*/
+ Client client = ClientBuilder.newClient();
+ WebTarget target =
+ client.target(baseUrl + "probe?qid=2&mst_id=11010&umw_id=N24");
+ /* Request the probe 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"));
+ Assert.assertEquals("200", respObj.getString("message"));
+ Assert.assertNotNull(respObj.getJsonArray("data"));
+ }
+ catch(JsonException je) {
+ Assert.fail(je.getMessage());
+ }
+ System.out.println("passed");
+ }
+
+
+ /**
+ * Test the GET Service by requesting all messung objects.
+ *
+ * @param baseUrl The url pointing to the test deployment.
+ */
+ private final void messungGetAllService(URL baseUrl)
+ throws Exception {
+ System.out.println("Testing MessungService (All): ");
+ /* Create a client*/
+ Client client = ClientBuilder.newClient();
+ WebTarget target = client.target(baseUrl + "messung");
+ /* Request all probe 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"));
+ Assert.assertEquals("200", content.getString("message"));
+ }
+ catch(JsonException je) {
+ Assert.fail(je.getMessage());
+ }
+ System.out.println("passed");
+ }
+
+ /**
+ * Test the GET Service by requesting a single messung object by id.
+ *
+ * @param baseUrl The url pointing to the test deployment.
+ */
+ private final void messungGetByIdService(URL baseUrl)
+ throws Exception {
+ System.out.println("Testing MessungService (byId): ");
+ try {
+ /* Create a json object from static messung string*/
+ JsonReader fromStringRreader =
+ Json.createReader(new StringReader(COMPARE_MESSUNG));
+ JsonObject staticMessung = fromStringRreader.readObject();
+ /* Create a client*/
+ Client client = ClientBuilder.newClient();
+ WebTarget target = client.target(baseUrl + "messung/1");
+ /* Request a probe 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"));
+ Assert.assertEquals("200", content.getString("message"));
+ Assert.assertEquals(staticMessung,
+ content.getJsonObject("data"));
+ }
+ catch(JsonException je) {
+ Assert.fail(je.getMessage());
+ }
+ System.out.println("passed");
+ }
+
+ /**
+ * Test the GET messung service using filters.
+ *
+ * @param baseUrl The url poining to the test deployment.
+ */
+ private final void messungFilterService(URL baseUrl) {
+ System.out.println("Testing MessungService (filter): ");
+ try {
+ /* Create a client*/
+ Client client = ClientBuilder.newClient();
+ WebTarget target =
+ client.target(baseUrl + "messung?probeId=1");
+ /* Request the probe 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"));
+ Assert.assertEquals("200", respObj.getString("message"));
+ Assert.assertNotNull(respObj.getJsonArray("data"));
+ }
+ catch(JsonException je) {
+ Assert.fail(je.getMessage());
+ }
+ System.out.println("passed");
+ }
+
+}
diff -r 2f42128de67b -r 66414517e25e src/test/java/de/intevation/lada/test/ProbeServiceTest.java
--- a/src/test/java/de/intevation/lada/test/ProbeServiceTest.java Mon Feb 16 15:15:27 2015 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,269 +0,0 @@
-/* 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 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;
-
-/**
- * Class to test the Lada probe REST service.
- *
- * @author <a href="mailto:rrenkert at intevation.de">Raimund Renkert</a>
- */
-public class ProbeServiceTest {
-
- private static final String COMPARE_PROBE =
- "{\"id\":1,\"baId\":\"1\",\"datenbasisId\":2," +
- "\"letzteAenderung\":1339570306000,\"media\":\"Trinkwasser " +
- "Zentralversorgung Oberflächenwasser aufbereitet\",\"mediaDesk\":" +
- "\"D: 59 04 01 00 05 05 01 02 00 00 00 00\",\"mittelungsdauer\":" +
- "null,\"mstId\":\"06010\",\"netzbetreiberId\":\"06\"," +
- "\"probeentnahmeBeginn\":1336467600000,\"probeentnahmeEnde\":" +
- "null,\"probenartId\":1,\"test\":false,\"umwId\":\"N72\"," +
- "\"erzeugerId\":null,\"mpKat\":\"1\",\"mplId\":null,\"mprId\":3749," +
- "\"probeNehmerId\":726,\"solldatumBeginn\":1336341600000," +
- "\"solldatumEnde\":1336939199000,\"probeIdAlt\":\"000007581034X\"," +
- "\"hauptprobenNr\":\"120510002\"}";
-
- private static final String CREATE_PROBE =
- "{\"baId\":\"1\",\"datenbasisId\":2,\"erzeugerId\":\"\"," +
- "\"hauptprobenNr\":\"1234567890\",\"media\":\"\",\"mediaDesk\":" +
- "\"\",\"mittelungsdauer\":\"\",\"mpKat\":\"\",\"mplId\":\"\"," +
- "\"mprId\":\"\",\"mstId\":\"11010\",\"netzbetreiberId\":\"11\"," +
- "\"probeNehmerId\":3,\"probenartId\":1,\"test\":true,\"umwId\":" +
- "\"A1\",\"letzteAenderung\":\"2015-02-09T10:58:36\"" +
- ",\"probeentnahmeBeginn\":\"2015-02-08T10:58:36\"," +
- "\"probeentnahmeEnde\":\"2015-02-09T10:58:36\",\"solldatumBeginn\":" +
- "\"2015-02-09T10:58:36\",\"solldatumEnde\":\"2015-02-09T10:58:36\"}";
-
-
- private Integer createdProbeId;
-
- /**
- * Main entry point in this class to start the tests.
- *
- * @param baseUrl The url pointing to the test deployment.
- */
- public final void test(URL baseUrl) throws Exception {
- System.out.println("\nStarting test (2) on Probe-Service:");
- probeGetAllService(baseUrl);
- probeGetByIdService(baseUrl);
- probeCreate(baseUrl);
- probeUpdate(baseUrl);
- probeDelete(baseUrl);
- probeFilter(baseUrl);
- }
-
- /**
- * Test the GET Service by requesting all probe objects.
- *
- * @param baseUrl The url pointing to the test deployment.
- */
- private final void probeGetAllService(URL baseUrl)
- throws Exception {
- System.out.println("Testing get: ");
- /* Create a client*/
- Client client = ClientBuilder.newClient();
- WebTarget target = client.target(baseUrl + "probe");
- /* Request all probe 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"));
- Assert.assertEquals("200", content.getString("message"));
- }
- catch(JsonException je) {
- Assert.fail(je.getMessage());
- }
- System.out.println("passed");
- }
-
- /**
- * Test the GET Service by requesting a single probe object by id.
- *
- * @param baseUrl The url pointing to the test deployment.
- */
- private final void probeGetByIdService(URL baseUrl)
- throws Exception {
- System.out.println("Testing getById: ");
- try {
- /* Create a json object from static probe string*/
- JsonReader fromStringRreader =
- Json.createReader(new StringReader(COMPARE_PROBE));
- JsonObject staticProbe = fromStringRreader.readObject();
- /* Create a client*/
- Client client = ClientBuilder.newClient();
- WebTarget target = client.target(baseUrl + "probe/1");
- /* Request a probe 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"));
- Assert.assertEquals("200", content.getString("message"));
- Assert.assertEquals(staticProbe,
- content.getJsonObject("data"));
- }
- catch(JsonException je) {
- Assert.fail(je.getMessage());
- }
- System.out.println("passed");
- }
-
- /**
- * Test the CREATE Service.
- *
- * @param baseUrl The url pointing to the test deployment.
- */
- private final void probeCreate(URL baseUrl)
- throws Exception {
- System.out.println("Testing create: ");
- try {
- /* Create a client*/
- Client client = ClientBuilder.newClient();
- WebTarget target = client.target(baseUrl + "probe");
- /* Send a post request containing a new probe*/
- Response response = target.request().post(
- Entity.entity(CREATE_PROBE, 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 probeid*/
- this.createdProbeId =
- content.getJsonObject("data").getJsonNumber("id").intValue();
- /* Verify the response*/
- Assert.assertTrue(content.getBoolean("success"));
- Assert.assertEquals("200", content.getString("message"));
- }
- catch(JsonException je) {
- Assert.fail(je.getMessage());
- }
- System.out.println("passed");
- }
-
- /**
- * Test the UPDATE Service.
- *
- * @param baseUrl The url pointing to the test deployment.
- */
- private final void probeUpdate(URL baseUrl)
- throws Exception {
- System.out.println("Testing update: ");
- try {
- /* Create a client*/
- Client client = ClientBuilder.newClient();
- WebTarget target =
- client.target(baseUrl + "probe/" + this.createdProbeId);
- /* Request a probe with the id saved when created a probe*/
- Response response = target.request().get();
- String entity = response.readEntity(String.class);
- /* Try to parse the response*/
- JsonReader reader = Json.createReader(new StringReader(entity));
- JsonObject oldProbe = reader.readObject().getJsonObject("data");
- /* Change the hauptprobenNr*/
- String updatedEntity =
- oldProbe.toString().replace("1234567890", "2345678901");
- /* Send the updated probe via put reauest*/
- WebTarget putTarget = client.target(baseUrl + "probe");
- 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 updatedProbe = updatedReader.readObject();
- /* Verify the response*/
- Assert.assertTrue(updatedProbe.getBoolean("success"));
- Assert.assertEquals("200", updatedProbe.getString("message"));
- Assert.assertEquals("2345678901",
- updatedProbe.getJsonObject("data").getString("hauptprobenNr"));
- }
- catch(JsonException je) {
- Assert.fail(je.getMessage());
- }
- System.out.println("passed");
- }
-
- /**
- * Test the DELETE Service.
- *
- * @param baseUrl The url pointing to the test deployment.
- */
- private final void probeDelete(URL baseUrl) {
- System.out.println("Testing delete: ");
- try {
- /* Create a client*/
- Client client = ClientBuilder.newClient();
- WebTarget target =
- client.target(baseUrl + "probe/" + this.createdProbeId);
- /* Delete a probe with the id saved when created a probe*/
- 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"));
- Assert.assertEquals("200", respObj.getString("message"));
- }
- catch(JsonException je) {
- Assert.fail(je.getMessage());
- }
- System.out.println("passed");
- }
-
- /**
- * Test the GET service using filters.
- *
- * @param baseUrl The url poining to the test deployment.
- */
- private final void probeFilter(URL baseUrl) {
- System.out.println("Testing filter: ");
- try {
- /* Create a client*/
- Client client = ClientBuilder.newClient();
- WebTarget target =
- client.target(baseUrl + "probe?qid=2&mst_id=11010&umw_id=N24");
- /* Request the probe 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"));
- Assert.assertEquals("200", respObj.getString("message"));
- Assert.assertNotNull(respObj.getJsonArray("data"));
- }
- catch(JsonException je) {
- Assert.fail(je.getMessage());
- }
- System.out.println("passed");
- }
-}
diff -r 2f42128de67b -r 66414517e25e src/test/java/de/intevation/lada/test/QueryServiceTest.java
--- a/src/test/java/de/intevation/lada/test/QueryServiceTest.java Mon Feb 16 15:15:27 2015 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,70 +0,0 @@
-/* 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 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.WebTarget;
-import javax.ws.rs.core.Response;
-
-import org.junit.Assert;
-
-/**
- * Class to test the Lada query REST service.
- *
- * @author <a href="mailto:rrenkert at intevation.de">Raimund Renkert</a>
- */
-public class QueryServiceTest {
-
- /**
- * Main entry point in this class to start the tests.
- *
- * @param baseUrl The url pointing to the test deployment.
- */
- public final void test(URL baseUrl) throws Exception {
- queryService(baseUrl);
- }
-
- /**
- * Test the GET Service by requesting all queries.
- *
- * @param baseUrl The url pointing to the test deployment.
- */
- private final void queryService(URL baseUrl)
- throws Exception {
- System.out.println("Starting test (1) on Query-Service:");
- System.out.println("Testing get: ");
- /* Create a client*/
- Client client = ClientBuilder.newClient();
- WebTarget target = client.target(baseUrl + "query");
- /* Request all queries*/
- 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();
- /* Verfiy the response*/
- Assert.assertTrue(content.getBoolean("success"));
- Assert.assertEquals("200", content.getString("message"));
- Assert.assertNotNull(content.getJsonArray("data"));
- }
- catch(JsonException je) {
- Assert.fail(je.getMessage());
- }
- System.out.println("passed");
- }
-
-}
diff -r 2f42128de67b -r 66414517e25e src/test/java/de/intevation/lada/test/UpdateTests.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/test/java/de/intevation/lada/test/UpdateTests.java Mon Feb 16 15:24:35 2015 +0100
@@ -0,0 +1,135 @@
+/* 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 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;
+
+/**
+ * Class to test all UPDATE services.
+ *
+ * @author <a href="mailto:rrenkert at intevation.de">Raimund Renkert</a>
+ */
+public class UpdateTests {
+
+ private Integer probeId;
+
+ private Integer messungId;
+
+ /**
+ * Main entry point in this class to start the tests.
+ *
+ * @param baseUrl The url pointing to the test deployment.
+ */
+ public final void test(URL baseUrl, Integer probeId, Integer messungId)
+ throws Exception {
+ System.out.println("\nStarting test on UPDATE Services:");
+ this.probeId = probeId;
+ this.messungId = messungId;
+ probeUpdateService(baseUrl);
+ messungUpdate(baseUrl);
+ }
+
+ /**
+ * Test the probe update service.
+ *
+ * @param baseUrl The url pointing to the test deployment.
+ */
+ private final void probeUpdateService(URL baseUrl)
+ throws Exception {
+ System.out.println("Testing ProbeService: ");
+ try {
+ /* Create a client*/
+ Client client = ClientBuilder.newClient();
+ WebTarget target =
+ client.target(baseUrl + "probe/" + this.probeId);
+ /* Request a probe with the id saved when created a probe*/
+ Response response = target.request().get();
+ String entity = response.readEntity(String.class);
+ /* Try to parse the response*/
+ JsonReader reader = Json.createReader(new StringReader(entity));
+ JsonObject oldProbe = reader.readObject().getJsonObject("data");
+ /* Change the hauptprobenNr*/
+ String updatedEntity =
+ oldProbe.toString().replace("1234567890", "2345678901");
+ /* Send the updated probe via put reauest*/
+ WebTarget putTarget = client.target(baseUrl + "probe");
+ 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 updatedProbe = updatedReader.readObject();
+ /* Verify the response*/
+ Assert.assertTrue(updatedProbe.getBoolean("success"));
+ Assert.assertEquals("200", updatedProbe.getString("message"));
+ Assert.assertEquals("2345678901",
+ updatedProbe.getJsonObject("data").getString("hauptprobenNr"));
+ }
+ catch(JsonException je) {
+ Assert.fail(je.getMessage());
+ }
+ System.out.println("passed");
+ }
+
+ /**
+ * Test the messung UPDATE Service.
+ *
+ * @param baseUrl The url pointing to the test deployment.
+ */
+ private final void messungUpdate(URL baseUrl)
+ throws Exception {
+ System.out.println("Testing MessungService: ");
+ try {
+ /* Create a client*/
+ Client client = ClientBuilder.newClient();
+ WebTarget target =
+ client.target(baseUrl + "messung/" + this.messungId);
+ /* Request a probe with the id saved when created a probe*/
+ Response response = target.request().get();
+ String entity = response.readEntity(String.class);
+ /* Try to parse the response*/
+ JsonReader reader = Json.createReader(new StringReader(entity));
+ JsonObject oldProbe = reader.readObject().getJsonObject("data");
+ /* Change the hauptprobenNr*/
+ String updatedEntity =
+ oldProbe.toString().replace("A4", "G1");
+ /* Send the updated probe via put reauest*/
+ WebTarget putTarget = client.target(baseUrl + "messung");
+ 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 updatedProbe = updatedReader.readObject();
+ /* Verify the response*/
+ Assert.assertTrue(updatedProbe.getBoolean("success"));
+ Assert.assertEquals("200", updatedProbe.getString("message"));
+ Assert.assertEquals("G1",
+ updatedProbe.getJsonObject("data").getString("mmtId"));
+ }
+ catch(JsonException je) {
+ Assert.fail(je.getMessage());
+ }
+ System.out.println("passed");
+ }
+
+}
More information about the Lada-commits
mailing list