summaryrefslogtreecommitdiffstats
path: root/cps-rest/src/test/groovy
diff options
context:
space:
mode:
authorlukegleeson <luke.gleeson@est.tech>2022-03-02 14:32:47 +0000
committerlukegleeson <luke.gleeson@est.tech>2022-03-10 17:58:57 +0000
commitd5bda8848a661465f214b0bf11211e63b272cfd6 (patch)
tree58a6a5e01ca0d5a80d0ada491e3b59c9ee7781c5 /cps-rest/src/test/groovy
parent3d02e9210625b75419089a3f5612f386c3b997ea (diff)
Replacing ModelMapper with MapStruct
- Removed Model Mapper from pom files - Replaced ModelMapper with MapStruct - Added Tests for MapStruct - Changed mapstruct annotations for individual variables to be null safe rather than all variables - Excluded generated code from code coverage - Set ModuleReferences input to required for SchemaSet so that ModuleReferences list set to empty list rather than null Issue-ID: CPS-127 Signed-off-by: lukegleeson <luke.gleeson@est.tech> Change-Id: I43f874aea79f58dda5526c6fdead27d8474d90af
Diffstat (limited to 'cps-rest/src/test/groovy')
-rw-r--r--cps-rest/src/test/groovy/org/onap/cps/config/CpsConfigSpec.groovy34
-rwxr-xr-xcps-rest/src/test/groovy/org/onap/cps/rest/controller/AdminRestControllerSpec.groovy14
-rw-r--r--cps-rest/src/test/groovy/org/onap/cps/rest/controller/CpsRestInputMapperSpec.groovy69
-rw-r--r--cps-rest/src/test/groovy/org/onap/cps/rest/exceptions/CpsRestExceptionHandlerSpec.groovy8
4 files changed, 80 insertions, 45 deletions
diff --git a/cps-rest/src/test/groovy/org/onap/cps/config/CpsConfigSpec.groovy b/cps-rest/src/test/groovy/org/onap/cps/config/CpsConfigSpec.groovy
deleted file mode 100644
index fc96f0447..000000000
--- a/cps-rest/src/test/groovy/org/onap/cps/config/CpsConfigSpec.groovy
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * Copyright (C) 2021 Nordix Foundation
- * Modifications Copyright (C) 2021 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.config
-
-import org.modelmapper.ModelMapper
-import spock.lang.Specification
-
-class CpsConfigSpec extends Specification {
- def objectUnderTest = new CpsConfig()
-
- def 'CPS configuration has a Model Mapper'() {
- expect: 'the CPS configuration has a Model Mapper'
- objectUnderTest.modelMapper() instanceof ModelMapper
- }
-}
diff --git a/cps-rest/src/test/groovy/org/onap/cps/rest/controller/AdminRestControllerSpec.groovy b/cps-rest/src/test/groovy/org/onap/cps/rest/controller/AdminRestControllerSpec.groovy
index e8cfcfb6f..58a5ebf04 100755
--- a/cps-rest/src/test/groovy/org/onap/cps/rest/controller/AdminRestControllerSpec.groovy
+++ b/cps-rest/src/test/groovy/org/onap/cps/rest/controller/AdminRestControllerSpec.groovy
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* Copyright (C) 2020-2021 Pantheon.tech
* Modifications Copyright (C) 2020-2021 Bell Canada.
- * Modifications Copyright (C) 2021 Nordix Foundation
+ * Modifications Copyright (C) 2021-2022 Nordix Foundation
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -22,17 +22,16 @@
package org.onap.cps.rest.controller
+import org.mapstruct.factory.Mappers
+
import static org.onap.cps.spi.CascadeDeleteAllowed.CASCADE_DELETE_PROHIBITED
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.multipart
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post
-import org.modelmapper.ModelMapper
import org.onap.cps.api.CpsAdminService
-import org.onap.cps.api.CpsDataService
import org.onap.cps.api.CpsModuleService
-import org.onap.cps.api.CpsQueryService
import org.onap.cps.spi.exceptions.AlreadyDefinedException
import org.onap.cps.spi.exceptions.SchemaSetInUseException
import org.onap.cps.spi.model.Anchor
@@ -59,7 +58,7 @@ class AdminRestControllerSpec extends Specification {
CpsAdminService mockCpsAdminService = Mock()
@SpringBean
- ModelMapper modelMapper = Spy()
+ CpsRestInputMapper cpsRestInputMapper = Mappers.getMapper(CpsRestInputMapper)
@Autowired
MockMvc mvc
@@ -68,10 +67,9 @@ class AdminRestControllerSpec extends Specification {
def basePath
def dataspaceName = 'my_dataspace'
- def anchor = new Anchor(name: 'my_anchor')
- def anchorList = [anchor]
def anchorName = 'my_anchor'
def schemaSetName = 'my_schema_set'
+ def anchor = new Anchor(name: anchorName, dataspaceName: dataspaceName, schemaSetName: schemaSetName)
def 'Create new dataspace.'() {
given: 'an endpoint'
@@ -274,7 +272,7 @@ class AdminRestControllerSpec extends Specification {
def 'Get existing anchor.'() {
given: 'service method returns a list of anchors'
- mockCpsAdminService.getAnchors(dataspaceName) >> anchorList
+ mockCpsAdminService.getAnchors(dataspaceName) >> [anchor]
and: 'an endpoint'
def anchorEndpoint = "$basePath/v1/dataspaces/$dataspaceName/anchors"
when: 'get all anchors API is invoked'
diff --git a/cps-rest/src/test/groovy/org/onap/cps/rest/controller/CpsRestInputMapperSpec.groovy b/cps-rest/src/test/groovy/org/onap/cps/rest/controller/CpsRestInputMapperSpec.groovy
new file mode 100644
index 000000000..9ff1a9fe9
--- /dev/null
+++ b/cps-rest/src/test/groovy/org/onap/cps/rest/controller/CpsRestInputMapperSpec.groovy
@@ -0,0 +1,69 @@
+/*
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2022 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.rest.controller
+
+import org.mapstruct.factory.Mappers
+import org.onap.cps.rest.model.AnchorDetails
+import org.onap.cps.rest.model.SchemaSetDetails
+import org.onap.cps.spi.model.Anchor
+import org.onap.cps.rest.model.ModuleReferences
+import org.onap.cps.spi.model.ModuleReference
+import org.onap.cps.spi.model.SchemaSet
+import spock.lang.Specification
+
+class CpsRestInputMapperSpec extends Specification {
+
+ def objectUnderTest = Mappers.getMapper(CpsRestInputMapper.class)
+
+ def 'Convert a SchemaSet to a SchemaSetDetails a ModuleReference'() {
+ given: 'a ModuleReference'
+ def moduleReference = new ModuleReference()
+ and: 'a SchemaSet containing the ModuleReference'
+ def schemaSet = new SchemaSet(name: 'some-schema-set', dataspaceName: 'some-dataspace',
+ moduleReferences: [moduleReference])
+ when: 'to schemaSetDetails is called'
+ def result = objectUnderTest.toSchemaSetDetails(schemaSet)
+ then: 'the result returns a SchemaSetDetails'
+ result.class == SchemaSetDetails.class
+ and: 'the results ModuleReferences are of type ModuleReference'
+ result.moduleReferences[0].class == ModuleReferences.class
+ }
+
+ def 'Convert a schemaSet to a SchemaSetDetails without an ModuleReference'() {
+ given: 'a SchemaSet'
+ def schemaSet = new SchemaSet()
+ when: 'to schemaSetDetails is called'
+ def result = objectUnderTest.toSchemaSetDetails(schemaSet)
+ then: 'the result returns a SchemaSetDetails'
+ result.class == SchemaSetDetails.class
+ and: 'the ModuleReferences of SchemaSetDetails is an empty collection'
+ result.moduleReferences.size() == 0
+ }
+
+ def 'Convert an Anchor to an AnchorDetails'() {
+ given: 'an Anchor'
+ def anchor = new Anchor()
+ when: 'to anchorDetails is called'
+ def result = objectUnderTest.toAnchorDetails(anchor)
+ then: 'the result returns an AnchorDetails'
+ result.class == AnchorDetails.class
+ }
+}
diff --git a/cps-rest/src/test/groovy/org/onap/cps/rest/exceptions/CpsRestExceptionHandlerSpec.groovy b/cps-rest/src/test/groovy/org/onap/cps/rest/exceptions/CpsRestExceptionHandlerSpec.groovy
index a2eaa525e..2aa4ddd1e 100644
--- a/cps-rest/src/test/groovy/org/onap/cps/rest/exceptions/CpsRestExceptionHandlerSpec.groovy
+++ b/cps-rest/src/test/groovy/org/onap/cps/rest/exceptions/CpsRestExceptionHandlerSpec.groovy
@@ -22,12 +22,14 @@
package org.onap.cps.rest.exceptions
+import com.fasterxml.jackson.databind.ObjectMapper
import groovy.json.JsonSlurper
-import org.modelmapper.ModelMapper
+import org.mapstruct.factory.Mappers
import org.onap.cps.api.CpsAdminService
import org.onap.cps.api.CpsDataService
import org.onap.cps.api.CpsModuleService
import org.onap.cps.api.CpsQueryService
+import org.onap.cps.rest.controller.CpsRestInputMapper
import org.onap.cps.spi.exceptions.AlreadyDefinedException
import org.onap.cps.spi.exceptions.CpsException
import org.onap.cps.spi.exceptions.CpsPathException
@@ -71,10 +73,10 @@ class CpsRestExceptionHandlerSpec extends Specification {
CpsQueryService mockCpsQueryService = Stub()
@SpringBean
- ModelMapper modelMapper = Stub()
+ JsonObjectMapper jsonObjectMapper = new JsonObjectMapper(new ObjectMapper())
@SpringBean
- JsonObjectMapper jsonObjectMapper = Stub()
+ CpsRestInputMapper cpsRestInputMapper = Stub()
@Autowired
MockMvc mvc