* ============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.
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
CpsAdminService mockCpsAdminService = Mock()
@SpringBean
- ModelMapper modelMapper = Spy()
+ CpsRestInputMapper cpsRestInputMapper = Mappers.getMapper(CpsRestInputMapper)
@Autowired
MockMvc mvc
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'
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'
response.status == HttpStatus.NO_CONTENT.value()
}
+ def 'Delete dataspace.'() {
+ given: 'an endpoint'
+ def dataspaceEndpoint = "$basePath/v1/dataspaces"
+ when: 'delete dataspace endpoint is invoked'
+ def response = mvc.perform(delete(dataspaceEndpoint)
+ .param('dataspace-name', dataspaceName))
+ .andReturn().response
+ then: 'associated service method is invoked with expected parameter'
+ 1 * mockCpsAdminService.deleteDataspace(dataspaceName)
+ and: 'response code indicates success'
+ response.status == HttpStatus.NO_CONTENT.value()
+ }
def createMultipartFile(filename, content) {
return new MockMultipartFile("file", filename, "text/plain", content.getBytes())
multipartFile.getInputStream() >> { throw new IOException() }
return multipartFile
}
+
}