Committed by
Gerrit Code Review
Add getMetersByDeviceId REST method
Change-Id: I50b9158aac1c8b0789ee271276db0fa701fdb7df
Showing
2 changed files
with
49 additions
and
2 deletions
... | @@ -73,10 +73,29 @@ public class MetersWebResource extends AbstractWebResource { | ... | @@ -73,10 +73,29 @@ public class MetersWebResource extends AbstractWebResource { |
73 | } | 73 | } |
74 | 74 | ||
75 | /** | 75 | /** |
76 | + * Returns a collection of meters by the device id. | ||
77 | + * | ||
78 | + * @param deviceId device identifier | ||
79 | + * @return array of meters which belongs to specified device | ||
80 | + * @onos.rsModel Meters | ||
81 | + */ | ||
82 | + @GET | ||
83 | + @Produces(MediaType.APPLICATION_JSON) | ||
84 | + @Path("{deviceId}") | ||
85 | + public Response getMetersByDeviceId(@PathParam("deviceId") String deviceId) { | ||
86 | + DeviceId did = DeviceId.deviceId(deviceId); | ||
87 | + final Iterable<Meter> meters = meterService.getMeters(did); | ||
88 | + if (meters != null) { | ||
89 | + meters.forEach(meter -> metersNode.add(codec(Meter.class).encode(meter, this))); | ||
90 | + } | ||
91 | + return ok(root).build(); | ||
92 | + } | ||
93 | + | ||
94 | + /** | ||
76 | * Returns a meter by the meter id. | 95 | * Returns a meter by the meter id. |
77 | * | 96 | * |
78 | * @param deviceId device identifier | 97 | * @param deviceId device identifier |
79 | - * @return array of all the groups in the system | 98 | + * @return a meter, return 404 if no entry has been found |
80 | * @onos.rsModel Meter | 99 | * @onos.rsModel Meter |
81 | */ | 100 | */ |
82 | @GET | 101 | @GET | ... | ... |
... | @@ -393,7 +393,35 @@ public class MetersResourceTest extends ResourceTest { | ... | @@ -393,7 +393,35 @@ public class MetersResourceTest extends ResourceTest { |
393 | } | 393 | } |
394 | 394 | ||
395 | /** | 395 | /** |
396 | - * Tests the result of a rest api GET for a device. | 396 | + * Tests the results of a rest api GET for a device. |
397 | + */ | ||
398 | + @Test | ||
399 | + public void testMeterSingleDevice() { | ||
400 | + setupMockMeters(); | ||
401 | + | ||
402 | + final Set<Meter> meters1 = new HashSet<>(); | ||
403 | + meters1.add(meter1); | ||
404 | + meters1.add(meter2); | ||
405 | + | ||
406 | + expect(mockMeterService.getMeters(anyObject())).andReturn(meters1).anyTimes(); | ||
407 | + replay(mockMeterService); | ||
408 | + replay(mockDeviceService); | ||
409 | + | ||
410 | + final WebResource rs = resource(); | ||
411 | + final String response = rs.path("meters/" + deviceId1.toString()).get(String.class); | ||
412 | + final JsonObject result = JsonObject.readFrom(response); | ||
413 | + assertThat(result, notNullValue()); | ||
414 | + | ||
415 | + assertThat(result.names(), hasSize(1)); | ||
416 | + assertThat(result.names().get(0), is("meters")); | ||
417 | + final JsonArray jsonMeters = result.get("meters").asArray(); | ||
418 | + assertThat(jsonMeters, notNullValue()); | ||
419 | + assertThat(jsonMeters, hasMeter(meter1)); | ||
420 | + assertThat(jsonMeters, hasMeter(meter2)); | ||
421 | + } | ||
422 | + | ||
423 | + /** | ||
424 | + * Tests the result of a rest api GET for a device with meter id. | ||
397 | */ | 425 | */ |
398 | @Test | 426 | @Test |
399 | public void testMeterSingleDeviceWithId() { | 427 | public void testMeterSingleDeviceWithId() { | ... | ... |
-
Please register or login to post a comment