From: PatrikBuhr Date: Thu, 19 Mar 2020 13:20:16 +0000 (+0100) Subject: HttStatus from PUT Service X-Git-Tag: 2.0.0~110^2 X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=commitdiff_plain;h=038a1a97ec72b7ec4fe3643440be6aa113bbadf4;p=nonrtric.git HttStatus from PUT Service For PUT Service, HttpStatus CREATED is returned for new service and OK for and update one. Change-Id: I15ae61d33b581f25a3ac2eeb4260d2a086c07382 Issue-ID: NONRTRIC-155 Signed-off-by: PatrikBuhr --- diff --git a/policy-agent/src/main/java/org/oransc/policyagent/controllers/ServiceController.java b/policy-agent/src/main/java/org/oransc/policyagent/controllers/ServiceController.java index 3d362282..2a346431 100644 --- a/policy-agent/src/main/java/org/oransc/policyagent/controllers/ServiceController.java +++ b/policy-agent/src/main/java/org/oransc/policyagent/controllers/ServiceController.java @@ -105,15 +105,17 @@ public class ServiceController { @ApiOperation(value = "Register a service") @ApiResponses( value = { // - @ApiResponse(code = 200, message = "OK", response = String.class), + @ApiResponse(code = 200, message = "Service updated", response = String.class), + @ApiResponse(code = 201, message = "Service created", response = String.class), // @ApiResponse(code = 400, message = "Cannot parse the ServiceRegistrationInfo", response = String.class)}) @PutMapping("/service") public ResponseEntity putService(// @RequestBody ServiceRegistrationInfo registrationInfo) { try { validateRegistrationInfo(registrationInfo); + final boolean isCreate = this.services.get(registrationInfo.serviceName) == null; this.services.put(toService(registrationInfo)); - return new ResponseEntity<>("OK", HttpStatus.OK); + return new ResponseEntity<>("OK", isCreate ? HttpStatus.CREATED : HttpStatus.OK); } catch (Exception e) { return new ResponseEntity<>(e.getMessage(), HttpStatus.BAD_REQUEST); } diff --git a/policy-agent/src/test/java/org/oransc/policyagent/ApplicationTest.java b/policy-agent/src/test/java/org/oransc/policyagent/ApplicationTest.java index 55b0b43a..4bc95128 100644 --- a/policy-agent/src/test/java/org/oransc/policyagent/ApplicationTest.java +++ b/policy-agent/src/test/java/org/oransc/policyagent/ApplicationTest.java @@ -22,6 +22,7 @@ package org.oransc.policyagent; import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.await; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.doReturn; @@ -86,6 +87,7 @@ import org.springframework.web.reactive.function.client.WebClientResponseExcepti import reactor.core.publisher.Mono; import reactor.test.StepVerifier; +import reactor.util.annotation.Nullable; @ExtendWith(SpringExtension.class) @SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT) @@ -525,7 +527,8 @@ public class ApplicationTest { @Test public void testPutAndGetService() throws Exception { // PUT - putService("name", 0); + putService("name", 0, HttpStatus.CREATED); + putService("name", 0, HttpStatus.OK); // GET one service String url = "/services?name=name"; @@ -566,7 +569,7 @@ public class ApplicationTest { @Test public void testServiceSupervision() throws Exception { - putService("service1", 1); + putService("service1", 1, HttpStatus.CREATED); addPolicyType("type1", "ric1"); String url = putPolicyUrl("service1", "ric1", "type1", "instance1"); @@ -619,13 +622,16 @@ public class ApplicationTest { } private void putService(String name) { - putService(name, 0); + putService(name, 0, null); } - private void putService(String name, long keepAliveIntervalSeconds) { + private void putService(String name, long keepAliveIntervalSeconds, @Nullable HttpStatus expectedStatus) { String url = "/service"; String body = createServiceJson(name, keepAliveIntervalSeconds); - restClient().put(url, body).block(); + ResponseEntity resp = restClient().putForEntity(url, body).block(); + if (expectedStatus != null) { + assertEquals(expectedStatus, resp.getStatusCode(), ""); + } } private String baseUrl() {