From 1bcba858d8c2c64103bffca1390ecea6008509fb Mon Sep 17 00:00:00 2001 From: Alexandre Girard Date: Thu, 18 Apr 2013 23:26:41 -0400 Subject: [PATCH] Usecase de feu. --- .../TestSendAlarmWhenSmokeIsDetected.java | 2 +- .../glo4002/testFixtures/TestFixture.java | 18 ++++++++----- .../glo4002/communication/Communicator.java | 2 +- .../ulaval/glo4002/policies/FirePolicy.java | 1 + .../requestSender/HTTPRequestSender.java | 2 ++ emergencyServer/pom.xml | 9 +++++++ .../emergencyServer/main/EmergencyServer.java | 3 ++- .../emergencyServer/rest/FireResource.java | 26 +++++++++++++++++++ .../emergencyServer/rest/PoliceResource.java | 3 +-- 9 files changed, 54 insertions(+), 12 deletions(-) create mode 100644 emergencyServer/src/main/java/ca/ulaval/glo4002/emergencyServer/rest/FireResource.java diff --git a/acceptanceTests/src/test/java/ca/ulaval/glo4002/acceptanceTests/TestSendAlarmWhenSmokeIsDetected.java b/acceptanceTests/src/test/java/ca/ulaval/glo4002/acceptanceTests/TestSendAlarmWhenSmokeIsDetected.java index 30658be..0e1677b 100644 --- a/acceptanceTests/src/test/java/ca/ulaval/glo4002/acceptanceTests/TestSendAlarmWhenSmokeIsDetected.java +++ b/acceptanceTests/src/test/java/ca/ulaval/glo4002/acceptanceTests/TestSendAlarmWhenSmokeIsDetected.java @@ -39,7 +39,7 @@ public void emergenciesCalledWhenSmokeDetected() { fixture.detectSmoke(); fixture.verifySirenIsOn(); - fixture.emergencyServerWasCalled(); + fixture.firemenWereCalled(); fixture.verifyZoneWasTransmittedToCentral(); } diff --git a/acceptanceTests/src/test/java/ca/ulaval/glo4002/testFixtures/TestFixture.java b/acceptanceTests/src/test/java/ca/ulaval/glo4002/testFixtures/TestFixture.java index a587840..a82cce0 100644 --- a/acceptanceTests/src/test/java/ca/ulaval/glo4002/testFixtures/TestFixture.java +++ b/acceptanceTests/src/test/java/ca/ulaval/glo4002/testFixtures/TestFixture.java @@ -129,7 +129,7 @@ public void triggerMovementDetector() { public void verifyPoliceWasCalledAfterThirtySeconds() throws InterruptedException { Awaitility.setDefaultTimeout(THIRTY_TWO_SECONDS_IN_MILLISECONDS, TimeUnit.MILLISECONDS); - Awaitility.await().until(emergencyServerWasCalled()); + Awaitility.await().until(emergenciesWereCalled()); long endTime = System.currentTimeMillis(); assertTrue(endTime - startTime >= THIRTY_SECONDS_IN_MILLISECONDS); @@ -146,11 +146,11 @@ public void verifyAlarmSystemWaitsThirtySecondsBeforeArming() throws Interrupted } public void verifyPoliceWasCalled() { - assertTrue(EmergencyServer.called); + assertTrue(EmergencyServer.policeWasCalled); } public void verifyPoliceWasNotCalled() { - assertFalse(EmergencyServer.called); + assertFalse(EmergencyServer.policeWasCalled); } public void verifyAlarmLogIsEmpty() throws Exception { @@ -194,14 +194,14 @@ private JSONObject getJSONResponseFromServer(HttpURLConnection connection) throw } public void setReceivedCallToFalse() { - EmergencyServer.called = false; + EmergencyServer.policeWasCalled = false; } - public static Callable emergencyServerWasCalled() { + public static Callable emergenciesWereCalled() { return new Callable() { public Boolean call() throws Exception { - return EmergencyServer.called; + return EmergencyServer.policeWasCalled; } }; @@ -244,7 +244,11 @@ public void verifySirenIsOn() { } public void verifyZoneWasTransmittedToCentral() { - // TODO + assertEquals(EmergencyServer.calledZone, A_ZONE); + } + + public void firemenWereCalled() { + assertTrue(EmergencyServer.fireFightersWereCalled); } } \ No newline at end of file diff --git a/client/src/main/java/ca/ulaval/glo4002/communication/Communicator.java b/client/src/main/java/ca/ulaval/glo4002/communication/Communicator.java index 3761ec0..f8fa381 100644 --- a/client/src/main/java/ca/ulaval/glo4002/communication/Communicator.java +++ b/client/src/main/java/ca/ulaval/glo4002/communication/Communicator.java @@ -40,8 +40,8 @@ public void sendMessageToCentralServer(TargetResource targetResource) { } public String sendMessageToCentralServer(TargetResource targetResource, String messageToSend) { - System.out.println(messageToSend); String resourceURL = generateResourceURL(targetResource); + System.out.println("resourceURL: " + resourceURL); String response = requestSender.sendPOSTRequest(resourceURL, messageToSend); return response; } diff --git a/client/src/main/java/ca/ulaval/glo4002/policies/FirePolicy.java b/client/src/main/java/ca/ulaval/glo4002/policies/FirePolicy.java index ffea60d..16a0a2c 100644 --- a/client/src/main/java/ca/ulaval/glo4002/policies/FirePolicy.java +++ b/client/src/main/java/ca/ulaval/glo4002/policies/FirePolicy.java @@ -14,6 +14,7 @@ public FirePolicy(AlarmSystem alarmSystem, Communicator communicator) { @Override public void executeProcedure(int zone) { if (alarmSystem.isArmed()) { + System.out.println(targetResource); communicator.sendMessageToCentralServer(targetResource, String.valueOf(zone)); alarmSystem.activateSiren(); } diff --git a/common/src/main/java/ca/ulaval/glo4002/common/requestSender/HTTPRequestSender.java b/common/src/main/java/ca/ulaval/glo4002/common/requestSender/HTTPRequestSender.java index 6658766..b33bf45 100644 --- a/common/src/main/java/ca/ulaval/glo4002/common/requestSender/HTTPRequestSender.java +++ b/common/src/main/java/ca/ulaval/glo4002/common/requestSender/HTTPRequestSender.java @@ -48,6 +48,8 @@ public String sendPOSTRequest(String resource) { public String sendGETRequest(String resource) { WebResource webResource = prepareRequest(resource); + System.out.println(webResource); + ClientResponse response = webResource.type(APPLICATION_TYPE).get(ClientResponse.class); treatAnswerFromRequest(response); diff --git a/emergencyServer/pom.xml b/emergencyServer/pom.xml index 3c01171..587ad29 100644 --- a/emergencyServer/pom.xml +++ b/emergencyServer/pom.xml @@ -45,6 +45,15 @@ com.sun.jersey jersey-servlet + + org.json + json + + + com.sun.jersey + jersey-json + 1.17 + \ No newline at end of file diff --git a/emergencyServer/src/main/java/ca/ulaval/glo4002/emergencyServer/main/EmergencyServer.java b/emergencyServer/src/main/java/ca/ulaval/glo4002/emergencyServer/main/EmergencyServer.java index 6197563..8e47236 100644 --- a/emergencyServer/src/main/java/ca/ulaval/glo4002/emergencyServer/main/EmergencyServer.java +++ b/emergencyServer/src/main/java/ca/ulaval/glo4002/emergencyServer/main/EmergencyServer.java @@ -15,7 +15,8 @@ public class EmergencyServer { private static final String PACKAGE_NAME = "ca.ulaval.glo4002.emergencyServer.rest"; private static final String CONTEXT_PATH = "/"; private static final String PATH_SPEC = "/*"; - public static boolean called = false; + public static boolean policeWasCalled = false; + public static boolean fireFightersWereCalled = false; public static int calledZone = 0; private Server server; diff --git a/emergencyServer/src/main/java/ca/ulaval/glo4002/emergencyServer/rest/FireResource.java b/emergencyServer/src/main/java/ca/ulaval/glo4002/emergencyServer/rest/FireResource.java new file mode 100644 index 0000000..4ab1086 --- /dev/null +++ b/emergencyServer/src/main/java/ca/ulaval/glo4002/emergencyServer/rest/FireResource.java @@ -0,0 +1,26 @@ +package ca.ulaval.glo4002.emergencyServer.rest; + +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.core.Response; + +import org.codehaus.jettison.json.JSONObject; +import org.json.JSONException; + +import ca.ulaval.glo4002.emergencyServer.main.EmergencyServer; + +@Path("/fire/") +public class FireResource { + + private static final String RESPONSE_TO_POST_REQUEST = "POST request received at emergency server"; + private static final int RESPONSE_OK = 200; + + @POST + public Response treatRequest(String helpRequesterInformations) throws JSONException, org.codehaus.jettison.json.JSONException { + JSONObject jsonObject = new JSONObject(helpRequesterInformations); + EmergencyServer.fireFightersWereCalled = true; + EmergencyServer.calledZone = jsonObject.getInt("message"); + + return Response.status(RESPONSE_OK).build(); + } +} diff --git a/emergencyServer/src/main/java/ca/ulaval/glo4002/emergencyServer/rest/PoliceResource.java b/emergencyServer/src/main/java/ca/ulaval/glo4002/emergencyServer/rest/PoliceResource.java index 025fb4c..fdeffae 100644 --- a/emergencyServer/src/main/java/ca/ulaval/glo4002/emergencyServer/rest/PoliceResource.java +++ b/emergencyServer/src/main/java/ca/ulaval/glo4002/emergencyServer/rest/PoliceResource.java @@ -12,8 +12,7 @@ public class PoliceResource { @POST public String treatRequest(String helpRequesterInformations) { - EmergencyServer.called = true; - System.out.println(helpRequesterInformations); + EmergencyServer.policeWasCalled = true; return RESPONSE_TO_POST_REQUEST; }