From d6f77e245fe28146b1b79a2940ef3ea30cf5a575 Mon Sep 17 00:00:00 2001 From: akanshad Date: Mon, 25 Mar 2019 11:09:42 +0530 Subject: ExtApi Listener Implementation Issue-ID: EXTAPI-204 Change-Id: I0a698068e8c5ea6e3860ff376540b239f7eeb86a Signed-off-by: akanshad --- .../onap/nbi/api/listener/ListenerResource.java | 130 --------------------- .../nbi/api/listener/ListenerResourceTest.java | 130 +++++++++++++++++++++ 2 files changed, 130 insertions(+), 130 deletions(-) delete mode 100644 src/test/java/org/onap/nbi/api/listener/ListenerResource.java create mode 100644 src/test/java/org/onap/nbi/api/listener/ListenerResourceTest.java (limited to 'src/test') diff --git a/src/test/java/org/onap/nbi/api/listener/ListenerResource.java b/src/test/java/org/onap/nbi/api/listener/ListenerResource.java deleted file mode 100644 index 8fb276d..0000000 --- a/src/test/java/org/onap/nbi/api/listener/ListenerResource.java +++ /dev/null @@ -1,130 +0,0 @@ -/** - * Copyright (c) 2019 Orange - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License - * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express - * or implied. See the License for the specific language governing permissions and limitations under - * the License. - */ -package org.onap.nbi.api.listener; - -import java.net.URI; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; -import org.apache.commons.lang3.StringUtils; -import org.onap.nbi.commons.ResourceManagement; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.http.MediaType; -import org.springframework.http.ResponseEntity; -import org.springframework.util.MultiValueMap; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; -import org.springframework.web.servlet.support.ServletUriComponentsBuilder; -import com.fasterxml.jackson.databind.JsonNode; - -@RestController -@RequestMapping("/test/listener") -public class ListenerResource extends ResourceManagement { - - Logger logger = LoggerFactory.getLogger(ListenerResource.class); - - static Map events = new ConcurrentHashMap<>(); - - /* - * listener resource test for hub resource - */ - @PostMapping(consumes = MediaType.APPLICATION_JSON_VALUE) - public ResponseEntity postListener(@RequestBody JsonNode event) { - if (logger.isDebugEnabled()) { - logger.debug("POST event from nbi : {}", event.toString()); - } - String eventId = event.get("eventId").asText(); - logger.info("putting eventId {} in the events map", eventId); - events.put(eventId, event); - - URI location = ServletUriComponentsBuilder.fromCurrentRequest().path("/{id}") - .buildAndExpand(eventId).toUri(); - - return ResponseEntity.created(location).body(event); - } - - - @GetMapping(value = "", produces = MediaType.APPLICATION_JSON_VALUE) - public ResponseEntity> findEvents( - @RequestParam MultiValueMap params) { - logger.info("called listener get with params {} : " + params.toString()); - Collection values = new ArrayList<>(); - String serviceOrderId = params.getFirst("serviceOrderId"); - String serviceInstanceId = params.getFirst("serviceInstanceId"); - if (StringUtils.isNotEmpty(serviceOrderId)) { - for (JsonNode jsonNode : events.values()) { - String id = jsonNode.get("event").get("id").asText(); - logger.info("found event with service order id : " + id); - if (id.equals(serviceOrderId)) { - values.add(jsonNode); - } - } - if (!values.isEmpty()) { - return ResponseEntity.ok(values); - } else { - logger.error("cannot found events with service order id : " + serviceOrderId); - return ResponseEntity.notFound().build(); - } - } else if (StringUtils.isNotEmpty(serviceInstanceId)) { - for (JsonNode jsonNode : events.values()) { - String id = jsonNode.get("event").get("id").asText(); - logger.info("found event with service Instance id : " + id); - if (id.equals(serviceInstanceId)) { - values.add(jsonNode); - } - } - if (!values.isEmpty()) { - return ResponseEntity.ok(values); - } else { - logger.error("cannot found events with service instance id : " + serviceInstanceId); - return ResponseEntity.notFound().build(); - } - } else { - values = events.values(); - } - return ResponseEntity.ok(values); - } - - @GetMapping(value = "/{eventId}", produces = MediaType.APPLICATION_JSON_VALUE) - public ResponseEntity getEvent(@PathVariable String eventId) { - - return ResponseEntity.ok(events.get(eventId)); - - } - - @DeleteMapping(value = "/{eventId}", produces = MediaType.APPLICATION_JSON_VALUE) - public ResponseEntity deleteEvent(@PathVariable String eventId) { - - events.remove(eventId); - return ResponseEntity.noContent().build(); - - } - - @DeleteMapping(produces = MediaType.APPLICATION_JSON_VALUE) - public ResponseEntity deleteEvents() { - - events.clear(); - return ResponseEntity.noContent().build(); - - } - -} diff --git a/src/test/java/org/onap/nbi/api/listener/ListenerResourceTest.java b/src/test/java/org/onap/nbi/api/listener/ListenerResourceTest.java new file mode 100644 index 0000000..691592a --- /dev/null +++ b/src/test/java/org/onap/nbi/api/listener/ListenerResourceTest.java @@ -0,0 +1,130 @@ +/** + * Copyright (c) 2019 Orange + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the License for the specific language governing permissions and limitations under + * the License. + */ +package org.onap.nbi.api.listener; + +import java.net.URI; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; +import org.apache.commons.lang3.StringUtils; +import org.onap.nbi.commons.ResourceManagement; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.util.MultiValueMap; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.servlet.support.ServletUriComponentsBuilder; +import com.fasterxml.jackson.databind.JsonNode; + +@RestController +@RequestMapping("/test/listener") +public class ListenerResourceTest extends ResourceManagement { + + Logger logger = LoggerFactory.getLogger(ListenerResourceTest.class); + + static Map events = new ConcurrentHashMap<>(); + + /* + * listener resource test for hub resource + */ + @PostMapping(consumes = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity postListener(@RequestBody JsonNode event) { + if (logger.isDebugEnabled()) { + logger.debug("POST event from nbi : {}", event.toString()); + } + String eventId = event.get("eventId").asText(); + logger.info("putting eventId {} in the events map", eventId); + events.put(eventId, event); + + URI location = ServletUriComponentsBuilder.fromCurrentRequest().path("/{id}") + .buildAndExpand(eventId).toUri(); + + return ResponseEntity.created(location).body(event); + } + + + @GetMapping(value = "", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity> findEvents( + @RequestParam MultiValueMap params) { + logger.info("called listener get with params {} : " + params.toString()); + Collection values = new ArrayList<>(); + String serviceOrderId = params.getFirst("serviceOrderId"); + String serviceInstanceId = params.getFirst("serviceInstanceId"); + if (StringUtils.isNotEmpty(serviceOrderId)) { + for (JsonNode jsonNode : events.values()) { + String id = jsonNode.get("event").get("id").asText(); + logger.info("found event with service order id : " + id); + if (id.equals(serviceOrderId)) { + values.add(jsonNode); + } + } + if (!values.isEmpty()) { + return ResponseEntity.ok(values); + } else { + logger.error("cannot found events with service order id : " + serviceOrderId); + return ResponseEntity.notFound().build(); + } + } else if (StringUtils.isNotEmpty(serviceInstanceId)) { + for (JsonNode jsonNode : events.values()) { + String id = jsonNode.get("event").get("id").asText(); + logger.info("found event with service Instance id : " + id); + if (id.equals(serviceInstanceId)) { + values.add(jsonNode); + } + } + if (!values.isEmpty()) { + return ResponseEntity.ok(values); + } else { + logger.error("cannot found events with service instance id : " + serviceInstanceId); + return ResponseEntity.notFound().build(); + } + } else { + values = events.values(); + } + return ResponseEntity.ok(values); + } + + @GetMapping(value = "/{eventId}", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity getEvent(@PathVariable String eventId) { + + return ResponseEntity.ok(events.get(eventId)); + + } + + @DeleteMapping(value = "/{eventId}", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity deleteEvent(@PathVariable String eventId) { + + events.remove(eventId); + return ResponseEntity.noContent().build(); + + } + + @DeleteMapping(produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity deleteEvents() { + + events.clear(); + return ResponseEntity.noContent().build(); + + } + +} -- cgit 1.2.3-korg