Jian Li
Committed by Ray Milkey

Add a null test case for getMeterByDeviceIdAndMeterId REST method

Change-Id: Icf38aa1a84cc3161bdd0212460c37877a22731bd
...@@ -51,6 +51,7 @@ import static org.slf4j.LoggerFactory.getLogger; ...@@ -51,6 +51,7 @@ import static org.slf4j.LoggerFactory.getLogger;
51 public class MetersWebResource extends AbstractWebResource { 51 public class MetersWebResource extends AbstractWebResource {
52 private final Logger log = getLogger(getClass()); 52 private final Logger log = getLogger(getClass());
53 public static final String DEVICE_INVALID = "Invalid deviceId in meter creation request"; 53 public static final String DEVICE_INVALID = "Invalid deviceId in meter creation request";
54 + public static final String METER_NOT_FOUND = "Meter is not found for ";
54 55
55 final MeterService meterService = get(MeterService.class); 56 final MeterService meterService = get(MeterService.class);
56 final ObjectNode root = mapper().createObjectNode(); 57 final ObjectNode root = mapper().createObjectNode();
...@@ -107,7 +108,7 @@ public class MetersWebResource extends AbstractWebResource { ...@@ -107,7 +108,7 @@ public class MetersWebResource extends AbstractWebResource {
107 MeterId mid = MeterId.meterId(Long.valueOf(meterId)); 108 MeterId mid = MeterId.meterId(Long.valueOf(meterId));
108 109
109 final Meter meter = nullIsNotFound(meterService.getMeter(did, mid), 110 final Meter meter = nullIsNotFound(meterService.getMeter(did, mid),
110 - "Meter is not found for " + mid.id()); 111 + METER_NOT_FOUND + mid.id());
111 112
112 metersNode.add(codec(Meter.class).encode(meter, this)); 113 metersNode.add(codec(Meter.class).encode(meter, this));
113 return ok(root).build(); 114 return ok(root).build();
......
...@@ -46,6 +46,7 @@ import org.onosproject.net.meter.Meter; ...@@ -46,6 +46,7 @@ import org.onosproject.net.meter.Meter;
46 import org.onosproject.net.meter.MeterId; 46 import org.onosproject.net.meter.MeterId;
47 import org.onosproject.net.meter.MeterService; 47 import org.onosproject.net.meter.MeterService;
48 import org.onosproject.net.meter.MeterState; 48 import org.onosproject.net.meter.MeterState;
49 +import org.onosproject.rest.resources.CoreWebApplication;
49 50
50 import javax.ws.rs.core.MediaType; 51 import javax.ws.rs.core.MediaType;
51 import java.io.InputStream; 52 import java.io.InputStream;
...@@ -66,6 +67,7 @@ import static org.easymock.EasyMock.replay; ...@@ -66,6 +67,7 @@ import static org.easymock.EasyMock.replay;
66 import static org.easymock.EasyMock.verify; 67 import static org.easymock.EasyMock.verify;
67 import static org.hamcrest.Matchers.hasSize; 68 import static org.hamcrest.Matchers.hasSize;
68 import static org.hamcrest.Matchers.is; 69 import static org.hamcrest.Matchers.is;
70 +import static org.junit.Assert.assertEquals;
69 import static org.junit.Assert.assertThat; 71 import static org.junit.Assert.assertThat;
70 import static org.hamcrest.Matchers.notNullValue; 72 import static org.hamcrest.Matchers.notNullValue;
71 import static org.onosproject.net.NetTestTools.APP_ID; 73 import static org.onosproject.net.NetTestTools.APP_ID;
...@@ -94,6 +96,10 @@ public class MetersResourceTest extends ResourceTest { ...@@ -94,6 +96,10 @@ public class MetersResourceTest extends ResourceTest {
94 final MockMeter meter4 = new MockMeter(deviceId2, 4, 444, 4); 96 final MockMeter meter4 = new MockMeter(deviceId2, 4, 444, 4);
95 final MockMeter meter5 = new MockMeter(deviceId3, 5, 555, 5); 97 final MockMeter meter5 = new MockMeter(deviceId3, 5, 555, 5);
96 98
99 + public MetersResourceTest() {
100 + super(CoreWebApplication.class);
101 + }
102 +
97 /** 103 /**
98 * Mock class for a meter. 104 * Mock class for a meter.
99 */ 105 */
...@@ -446,6 +452,24 @@ public class MetersResourceTest extends ResourceTest { ...@@ -446,6 +452,24 @@ public class MetersResourceTest extends ResourceTest {
446 } 452 }
447 453
448 /** 454 /**
455 + * Test whether the REST API returns 404 if no entry has been found.
456 + */
457 + @Test
458 + public void testMeterByDeviceIdAndMeterId() {
459 + setupMockMeters();
460 +
461 + expect(mockMeterService.getMeter(anyObject(), anyObject()))
462 + .andReturn(null).anyTimes();
463 + replay(mockMeterService);
464 +
465 + final WebResource rs = resource();
466 + final ClientResponse response = rs.path("meters/" + deviceId3.toString()
467 + + "/" + "888").get(ClientResponse.class);
468 +
469 + assertEquals(404, response.getStatus());
470 + }
471 +
472 + /**
449 * Tests creating a meter with POST. 473 * Tests creating a meter with POST.
450 */ 474 */
451 @Test 475 @Test
......