From cb0256d46fa8fd75f54482917ec1cd4aba02fb55 Mon Sep 17 00:00:00 2001 From: "waqas.ikram" Date: Fri, 16 Jun 2023 13:05:04 +0100 Subject: [PATCH] Refactored code to enable its utilization in Junit tests for the client Change-Id: I847ae0f48444af907039bfddb9879581003c0f35 Issue-ID: CPS-1751 Signed-off-by: waqas.ikram --- cps-ncmp-rest-stub/cps-ncmp-rest-stub-app/pom.xml | 56 ++++++++ .../org/onap/cps/ncmp/rest/stub/Application.java | 0 .../cps-ncmp-rest-stub-service/pom.xml | 50 +++++++ .../controller/NetworkCmProxyStubController.java | 108 +++++++++++++- .../src/main/resources/application.yml | 0 .../src/main/resources/stubs/cmHandlesSearch.json | 0 .../stubs/passthrough-operational-example.json | 0 cps-ncmp-rest-stub/pom.xml | 158 ++------------------- .../handlers/NetworkCmProxyApiStubDefaultImpl.java | 143 ------------------- .../test/java/org/onap/cps/TestApplication.java | 30 ---- cps-parent/pom.xml | 3 +- 11 files changed, 219 insertions(+), 329 deletions(-) create mode 100644 cps-ncmp-rest-stub/cps-ncmp-rest-stub-app/pom.xml rename cps-ncmp-rest-stub/{ => cps-ncmp-rest-stub-app}/src/main/java/org/onap/cps/ncmp/rest/stub/Application.java (100%) create mode 100644 cps-ncmp-rest-stub/cps-ncmp-rest-stub-service/pom.xml rename cps-ncmp-rest-stub/{ => cps-ncmp-rest-stub-service}/src/main/java/org/onap/cps/ncmp/rest/stub/controller/NetworkCmProxyStubController.java (51%) rename cps-ncmp-rest-stub/{ => cps-ncmp-rest-stub-service}/src/main/resources/application.yml (100%) rename cps-ncmp-rest-stub/{ => cps-ncmp-rest-stub-service}/src/main/resources/stubs/cmHandlesSearch.json (100%) rename cps-ncmp-rest-stub/{ => cps-ncmp-rest-stub-service}/src/main/resources/stubs/passthrough-operational-example.json (100%) delete mode 100644 cps-ncmp-rest-stub/src/main/java/org/onap/cps/ncmp/rest/stub/handlers/NetworkCmProxyApiStubDefaultImpl.java delete mode 100644 cps-ncmp-rest-stub/src/test/java/org/onap/cps/TestApplication.java diff --git a/cps-ncmp-rest-stub/cps-ncmp-rest-stub-app/pom.xml b/cps-ncmp-rest-stub/cps-ncmp-rest-stub-app/pom.xml new file mode 100644 index 000000000..7a244c4d4 --- /dev/null +++ b/cps-ncmp-rest-stub/cps-ncmp-rest-stub-app/pom.xml @@ -0,0 +1,56 @@ + + + + + 4.0.0 + + org.onap.cps + cps-ncmp-rest-stub + 3.3.3-SNAPSHOT + + + cps-ncmp-rest-stub-app + + + + + org.springframework.boot + spring-boot-maven-plugin + + org.onap.cps.ncmp.rest.stub.Application + + + + + repackage + + + + + + + + + + org.onap.cps + cps-ncmp-rest-stub-service + ${project.version} + + + \ No newline at end of file diff --git a/cps-ncmp-rest-stub/src/main/java/org/onap/cps/ncmp/rest/stub/Application.java b/cps-ncmp-rest-stub/cps-ncmp-rest-stub-app/src/main/java/org/onap/cps/ncmp/rest/stub/Application.java similarity index 100% rename from cps-ncmp-rest-stub/src/main/java/org/onap/cps/ncmp/rest/stub/Application.java rename to cps-ncmp-rest-stub/cps-ncmp-rest-stub-app/src/main/java/org/onap/cps/ncmp/rest/stub/Application.java diff --git a/cps-ncmp-rest-stub/cps-ncmp-rest-stub-service/pom.xml b/cps-ncmp-rest-stub/cps-ncmp-rest-stub-service/pom.xml new file mode 100644 index 000000000..fc33270ea --- /dev/null +++ b/cps-ncmp-rest-stub/cps-ncmp-rest-stub-service/pom.xml @@ -0,0 +1,50 @@ + + + + 4.0.0 + + org.onap.cps + cps-ncmp-rest-stub + 3.3.3-SNAPSHOT + + cps-ncmp-rest-stub-service + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-tomcat + + + compile + + + org.springframework.boot + spring-boot-starter-jetty + compile + + + org.onap.cps + cps-ncmp-rest + + + \ No newline at end of file diff --git a/cps-ncmp-rest-stub/src/main/java/org/onap/cps/ncmp/rest/stub/controller/NetworkCmProxyStubController.java b/cps-ncmp-rest-stub/cps-ncmp-rest-stub-service/src/main/java/org/onap/cps/ncmp/rest/stub/controller/NetworkCmProxyStubController.java similarity index 51% rename from cps-ncmp-rest-stub/src/main/java/org/onap/cps/ncmp/rest/stub/controller/NetworkCmProxyStubController.java rename to cps-ncmp-rest-stub/cps-ncmp-rest-stub-service/src/main/java/org/onap/cps/ncmp/rest/stub/controller/NetworkCmProxyStubController.java index 688f62403..37980ed8d 100644 --- a/cps-ncmp-rest-stub/src/main/java/org/onap/cps/ncmp/rest/stub/controller/NetworkCmProxyStubController.java +++ b/cps-ncmp-rest-stub/cps-ncmp-rest-stub-service/src/main/java/org/onap/cps/ncmp/rest/stub/controller/NetworkCmProxyStubController.java @@ -30,11 +30,18 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.UUID; +import javax.validation.Valid; +import javax.validation.constraints.NotNull; import lombok.extern.slf4j.Slf4j; import org.onap.cps.ncmp.api.impl.operations.DatastoreType; +import org.onap.cps.ncmp.rest.api.NetworkCmProxyApi; import org.onap.cps.ncmp.rest.model.CmHandleQueryParameters; +import org.onap.cps.ncmp.rest.model.ResourceDataBatchRequest; +import org.onap.cps.ncmp.rest.model.RestModuleDefinition; +import org.onap.cps.ncmp.rest.model.RestModuleReference; import org.onap.cps.ncmp.rest.model.RestOutputCmHandle; -import org.onap.cps.ncmp.rest.stub.handlers.NetworkCmProxyApiStubDefaultImpl; +import org.onap.cps.ncmp.rest.model.RestOutputCmHandleCompositeState; +import org.onap.cps.ncmp.rest.model.RestOutputCmHandlePublicProperties; import org.springframework.beans.factory.annotation.Value; import org.springframework.core.io.ClassPathResource; import org.springframework.http.HttpStatus; @@ -42,28 +49,29 @@ import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; + @Slf4j @RestController @RequestMapping("${rest.api.ncmp-stub-base-path}") -public class NetworkCmProxyStubController implements NetworkCmProxyApiStubDefaultImpl { +public class NetworkCmProxyStubController implements NetworkCmProxyApi { @Value("${stub.path}") private String pathToResponseFiles; + private static final String ASYNC_REQUEST_ID = "requestId"; @Override - public ResponseEntity getResourceDataForCmHandle(final String dataStoreName, - final String cmHandle, + public ResponseEntity getResourceDataForCmHandle(final String datastoreName, final String cmHandle, final String resourceIdentifier, final String optionsParamInQuery, final String topicParamInQuery, final Boolean includeDescendants) { - if (DatastoreType.PASSTHROUGH_OPERATIONAL == DatastoreType.fromDatastoreName(dataStoreName)) { + if (DatastoreType.PASSTHROUGH_OPERATIONAL == DatastoreType.fromDatastoreName(datastoreName)) { final ResponseEntity> asyncResponse = populateAsyncResponse(topicParamInQuery); final Map asyncResponseData = asyncResponse.getBody(); Object responseObject = null; // read JSON file and map/convert to java POJO - final ClassPathResource resource = - new ClassPathResource(pathToResponseFiles + "passthrough-operational-example.json"); + final ClassPathResource resource = new ClassPathResource( + pathToResponseFiles + "passthrough-operational-example.json"); try (InputStream inputStream = resource.getInputStream()) { final String string = new String(inputStream.readAllBytes(), StandardCharsets.UTF_8); final ObjectMapper mapper = new ObjectMapper(); @@ -113,4 +121,90 @@ public class NetworkCmProxyStubController implements NetworkCmProxyApiStubDefaul asyncResponseData.put(ASYNC_REQUEST_ID, resourceDataRequestId); return asyncResponseData; } + + @Override + public ResponseEntity createResourceDataRunningForCmHandle(@NotNull @Valid final String resourceIdentifier, + final String datastoreName, final String cmHandle, + @Valid final Object body, + final String contentType) { + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + @Override + public ResponseEntity deleteResourceDataRunningForCmHandle(final String datastoreName, final String cmHandle, + @NotNull @Valid final String resourceIdentifier, + final String contentType) { + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + @Override + public ResponseEntity getCmHandlePublicPropertiesByCmHandleId( + final String cmHandle) { + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + @Override + public ResponseEntity getCmHandleStateByCmHandleId(final String cmHandle) { + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + @Override + public ResponseEntity> getModuleDefinitionsByCmHandleId(final String cmHandle) { + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + @Override + public ResponseEntity> getModuleReferencesByCmHandle(final String cmHandle) { + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + @Override + public ResponseEntity getResourceDataForCmHandleBatch(@NotNull @Valid final String topic, + @Valid final ResourceDataBatchRequest body) { + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + @Override + public ResponseEntity patchResourceDataRunningForCmHandle(@NotNull @Valid final String resourceIdentifier, + final String datastoreName, final String cmHandle, + @Valid final Object body, + final String contentType) { + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + @Override + public ResponseEntity queryResourceDataForCmHandle(final String datastoreName, final String cmHandle, + @Valid final String cpsPath, @Valid final String options, + @Valid final String topic, + @Valid final Boolean includeDescendants) { + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + @Override + public ResponseEntity retrieveCmHandleDetailsById(final String cmHandle) { + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + + } + + @Override + public ResponseEntity> searchCmHandleIds(@Valid final CmHandleQueryParameters body) { + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + + } + + @Override + public ResponseEntity setDataSyncEnabledFlagForCmHandle(final String cmHandle, + @NotNull @Valid final Boolean dataSyncEnabled) { + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + + } + + @Override + public ResponseEntity updateResourceDataRunningForCmHandle(@NotNull @Valid final String resourceIdentifier, + final String datastoreName, + final String cmHandle, @Valid final Object body, + final String contentType) { + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + + } } diff --git a/cps-ncmp-rest-stub/src/main/resources/application.yml b/cps-ncmp-rest-stub/cps-ncmp-rest-stub-service/src/main/resources/application.yml similarity index 100% rename from cps-ncmp-rest-stub/src/main/resources/application.yml rename to cps-ncmp-rest-stub/cps-ncmp-rest-stub-service/src/main/resources/application.yml diff --git a/cps-ncmp-rest-stub/src/main/resources/stubs/cmHandlesSearch.json b/cps-ncmp-rest-stub/cps-ncmp-rest-stub-service/src/main/resources/stubs/cmHandlesSearch.json similarity index 100% rename from cps-ncmp-rest-stub/src/main/resources/stubs/cmHandlesSearch.json rename to cps-ncmp-rest-stub/cps-ncmp-rest-stub-service/src/main/resources/stubs/cmHandlesSearch.json diff --git a/cps-ncmp-rest-stub/src/main/resources/stubs/passthrough-operational-example.json b/cps-ncmp-rest-stub/cps-ncmp-rest-stub-service/src/main/resources/stubs/passthrough-operational-example.json similarity index 100% rename from cps-ncmp-rest-stub/src/main/resources/stubs/passthrough-operational-example.json rename to cps-ncmp-rest-stub/cps-ncmp-rest-stub-service/src/main/resources/stubs/passthrough-operational-example.json diff --git a/cps-ncmp-rest-stub/pom.xml b/cps-ncmp-rest-stub/pom.xml index 0a6684fc0..7fa44e613 100644 --- a/cps-ncmp-rest-stub/pom.xml +++ b/cps-ncmp-rest-stub/pom.xml @@ -6,22 +6,18 @@ 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. - SPDX-License-Identifier: Apache-2.0 ============LICENSE_END========================================================= --> - + 4.0.0 org.onap.cps @@ -31,149 +27,15 @@ cps-ncmp-rest-stub + pom + - org.onap.cps.ncmp.rest.stub.Application - 11 - ${project.reporting.outputDirectory}/jacoco-aggregate - - ../jacoco-report/target/site/jacoco-aggregate/jacoco.xml - - 3.0.8 - https://nexus.onap.org - /content/repositories/releases/ - /content/repositories/snapshots/ + ${project.parent.basedir}/.. true - 1.4.2.Final - - - io.swagger.core.v3 - swagger-annotations - 2.1.4 - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-tomcat - - - - - org.springframework.boot - spring-boot-starter-validation - - - org.springframework.boot - spring-boot-starter-jetty - - - org.mapstruct - mapstruct - ${mapstruct.version} - - - org.mapstruct - mapstruct-processor - ${mapstruct.version} - - - - org.projectlombok - lombok - - - - org.slf4j - slf4j-simple - 1.8.0-beta4 - - - cglib - cglib-nodep - test - 3.1 - - - com.google.code.gson - gson - - - org.onap.cps - cps-ncmp-rest - true - - - - - - - - org.apache.maven.plugins - maven-compiler-plugin - 2.3.2 - - ${java.version} - ${java.version} - - - - - org.apache.maven.plugins - maven-shade-plugin - - - org.springframework.boot - spring-boot-maven-plugin - 1.2.7.RELEASE - - - - true - true - - - *:* - - org/onap/cps/ncmp/rest/controller/** - - - - - - - package - - shade - - - - - META-INF/spring.handlers - - - META-INF/spring.factories - - - META-INF/spring.schemas - - - - org/onap/cps/ncmp/rest/stub/Application - - - - - - - - - + + cps-ncmp-rest-stub-service + cps-ncmp-rest-stub-app + + \ No newline at end of file diff --git a/cps-ncmp-rest-stub/src/main/java/org/onap/cps/ncmp/rest/stub/handlers/NetworkCmProxyApiStubDefaultImpl.java b/cps-ncmp-rest-stub/src/main/java/org/onap/cps/ncmp/rest/stub/handlers/NetworkCmProxyApiStubDefaultImpl.java deleted file mode 100644 index 7bd3acbf6..000000000 --- a/cps-ncmp-rest-stub/src/main/java/org/onap/cps/ncmp/rest/stub/handlers/NetworkCmProxyApiStubDefaultImpl.java +++ /dev/null @@ -1,143 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * Copyright (C) 2023 Nordix Foundation - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.cps.ncmp.rest.stub.handlers; - -import java.util.List; -import org.onap.cps.ncmp.rest.api.NetworkCmProxyApi; -import org.onap.cps.ncmp.rest.model.CmHandleQueryParameters; -import org.onap.cps.ncmp.rest.model.ResourceDataBatchRequest; -import org.onap.cps.ncmp.rest.model.RestModuleDefinition; -import org.onap.cps.ncmp.rest.model.RestModuleReference; -import org.onap.cps.ncmp.rest.model.RestOutputCmHandle; -import org.onap.cps.ncmp.rest.model.RestOutputCmHandleCompositeState; -import org.onap.cps.ncmp.rest.model.RestOutputCmHandlePublicProperties; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; - -public interface NetworkCmProxyApiStubDefaultImpl extends NetworkCmProxyApi { - - String ASYNC_REQUEST_ID = "requestId"; - - @Override - default ResponseEntity getResourceDataForCmHandle(final String datastoreName, - final String cmHandle, - final String resourceIdentifier, - final String optionsParamInQuery, - final String topicParamInQuery, - final Boolean includeDescendants) { - return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); - } - - @Override - default ResponseEntity getResourceDataForCmHandleBatch(final String topicParamInQuery, - final ResourceDataBatchRequest - resourceDataBatchRequest) { - return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); - } - - @Override - default ResponseEntity> searchCmHandles( - final CmHandleQueryParameters cmHandleQueryParameters) { - return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); - } - - @Override - default ResponseEntity createResourceDataRunningForCmHandle(final String datastoreName, - final String resourceIdentifier, - final String cmHandleId, - final Object requestBody, - final String contentType) { - return new ResponseEntity<>(HttpStatus.CREATED); - } - - @Override - default ResponseEntity deleteResourceDataRunningForCmHandle(final String datastoreName, - final String cmHandleId, - final String resourceIdentifier, - final String contentType) { - return new ResponseEntity<>(HttpStatus.NO_CONTENT); - } - - @Override - default ResponseEntity setDataSyncEnabledFlagForCmHandle(final String cmHandleId, - final Boolean dataSyncEnabled) { - return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); - } - - @Override - default ResponseEntity> searchCmHandleIds(final CmHandleQueryParameters cmHandleQueryParameters) { - return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); - } - - @Override - default ResponseEntity getCmHandlePublicPropertiesByCmHandleId( - final String cmHandleId) { - return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); - } - - @Override - default ResponseEntity getCmHandleStateByCmHandleId(final String cmHandle) { - return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); - } - - @Override - default ResponseEntity> getModuleDefinitionsByCmHandleId(final String cmHandle) { - return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); - } - - @Override - default ResponseEntity> getModuleReferencesByCmHandle(final String cmHandleId) { - return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); - } - - @Override - default ResponseEntity patchResourceDataRunningForCmHandle(final String datastoreName, - final String resourceIdentifier, - final String cmHandleId, - final Object requestBody, - final String contentType) { - return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); - } - - @Override - default ResponseEntity queryResourceDataForCmHandle(final String datastoreName, - final String cmHandle, - final String cpsPath, - final String optionsParamInQuery, - final String topicParamInQuery, - final Boolean includeDescendants) { - return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); - } - - @Override - default ResponseEntity retrieveCmHandleDetailsById(final String cmHandleId) { - return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); - } - - @Override - default ResponseEntity updateResourceDataRunningForCmHandle(final String datastoreName, - final String resourceIdentifier, - final String cmHandleId, - final Object requestBody, - final String contentType) { - return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); - } -} diff --git a/cps-ncmp-rest-stub/src/test/java/org/onap/cps/TestApplication.java b/cps-ncmp-rest-stub/src/test/java/org/onap/cps/TestApplication.java deleted file mode 100644 index a095edc42..000000000 --- a/cps-ncmp-rest-stub/src/test/java/org/onap/cps/TestApplication.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * Copyright (C) 2022 Bell Canada. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.cps; - -import org.springframework.boot.autoconfigure.SpringBootApplication; - -/** - * The @SpringBootApplication annotated class is required in order to run tests - * marked with @SpringBootTest annotation. - */ -@SpringBootApplication -public class TestApplication { -} diff --git a/cps-parent/pom.xml b/cps-parent/pom.xml index 0f58fbba7..be62a4c5d 100755 --- a/cps-parent/pom.xml +++ b/cps-parent/pom.xml @@ -45,6 +45,7 @@ ../jacoco-report/target/site/jacoco-aggregate/jacoco.xml + ${project.basedir}/.. @@ -417,7 +418,7 @@ ${script.executor} - ../cps-ri/src/main/resources/ + ${parent.directory}/cps-ri/src/main/resources/ yangResourceCsvGenerator.py dmi-registry@2021-12-13 -- 2.16.6