diff --git a/jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/generic/RoadSideUnitTest.java b/jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/generic/RoadSideUnitTest.java index 4de5f8043..0e29bb4ca 100644 --- a/jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/generic/RoadSideUnitTest.java +++ b/jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/generic/RoadSideUnitTest.java @@ -111,6 +111,17 @@ public void testDeserializationFromJson_ntcip1218RSU() { assertEquals(SnmpProtocol.NTCIP1218, deserializedRSU.getSnmpProtocol()); } - // TODO: implement deserialization with unrecognized protocol so defaults to fourDot1 + @Test + public void testDeserializationFromJson_unrecognizedProtocol_exception() { + String unrecognizedProtocolRSU = "{\"rsuTarget\":\"10.10.10.10\",\"rsuUsername\":\"user\",\"rsuPassword\":\"pass\",\"rsuRetries\":\"3\",\"rsuTimeout\":\"5000\",\"snmpProtocol\":\"banana\"}"; + RSU deserializedRSU = null; + try { + deserializedRSU = (RSU) JsonUtils.fromJson(unrecognizedProtocolRSU, RSU.class); + } + catch(Exception e) { + + } + assert(deserializedRSU == null); + } } diff --git a/jpo-ode-svcs/src/main/java/us/dot/its/jpo/ode/traveler/TimQueryController.java b/jpo-ode-svcs/src/main/java/us/dot/its/jpo/ode/traveler/TimQueryController.java index 232f792a7..27db4cc5e 100644 --- a/jpo-ode-svcs/src/main/java/us/dot/its/jpo/ode/traveler/TimQueryController.java +++ b/jpo-ode-svcs/src/main/java/us/dot/its/jpo/ode/traveler/TimQueryController.java @@ -71,7 +71,16 @@ public synchronized ResponseEntity bulkQuery(@RequestBody String jsonStr return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(JsonUtils.jsonKeyValue(ERRSTR, "Empty request.")); } - RSU queryTarget = (RSU) JsonUtils.fromJson(jsonString, RSU.class); + RSU queryTarget = null; + try { + queryTarget = (RSU) JsonUtils.fromJson(jsonString, RSU.class); + } + catch(Exception e) { + + } + if (queryTarget == null) { + return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(JsonUtils.jsonKeyValue(ERRSTR, "Unrecognized protocol")); + } TimTransmogrifier.updateRsuCreds(queryTarget, odeProperties); diff --git a/jpo-ode-svcs/src/test/java/us/dot/its/jpo/ode/traveler/TimQueryControllerTest.java b/jpo-ode-svcs/src/test/java/us/dot/its/jpo/ode/traveler/TimQueryControllerTest.java index 97b1ce6d7..89787cfd3 100644 --- a/jpo-ode-svcs/src/test/java/us/dot/its/jpo/ode/traveler/TimQueryControllerTest.java +++ b/jpo-ode-svcs/src/test/java/us/dot/its/jpo/ode/traveler/TimQueryControllerTest.java @@ -478,6 +478,13 @@ public void testSuccessfulPopulatedQuery_ntcip1218RSU() throws IOException { assertTrue(actualResponse.getBody().contains("indicies_set")); } - // TODO: implement test for unrecognized snmp protocol + @Test + public void testPopulatedQuery_unrecognizedProtocol() throws IOException { + String unrecognizedProtocolRSU = "{\"rsuTarget\":\"10.10.10.10\",\"rsuUsername\":\"user\",\"rsuPassword\":\"pass\",\"rsuRetries\":\"3\",\"rsuTimeout\":\"5000\",\"snmpProtocol\":\"banana\"}"; + + ResponseEntity actualResponse = testTimQueryController.bulkQuery(unrecognizedProtocolRSU); + assertEquals(HttpStatus.BAD_REQUEST, actualResponse.getStatusCode()); + assertTrue(actualResponse.getBody().contains("Unrecognized protocol")); + } }