X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=cps-rest%2Fsrc%2Ftest%2Fgroovy%2Forg%2Fonap%2Fcps%2Frest%2Fcontroller%2FAdminRestControllerSpec.groovy;h=9ce7f739396556b5b7d5f8f0635fe1b5f4d76c64;hb=c6865f33336bcdcd79eb2659b1a7df130aee9452;hp=3387fb4e1e638de8e0f7299ed4fc1bd81af2cace;hpb=63be201ed60ca0d0b16ebe5a1a9d3a8e3f7b8482;p=cps.git 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 3387fb4e1..9ce7f7393 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 @@ -1,6 +1,6 @@ /* * ============LICENSE_START======================================================= - * Copyright (C) 2020 Pantheon.tech + * Copyright (C) 2020-2021 Pantheon.tech * Modifications Copyright (C) 2020, 2021 Bell Canada. All rights reserved. * Copyright (C) 2021 Nordix Foundation * ================================================================================ @@ -47,7 +47,6 @@ import org.springframework.test.web.servlet.MockMvc import org.springframework.util.LinkedMultiValueMap import org.springframework.util.MultiValueMap import spock.lang.Specification -import spock.lang.Unroll @WebMvcTest class AdminRestControllerSpec extends Specification { @@ -65,7 +64,7 @@ class AdminRestControllerSpec extends Specification { CpsQueryService mockCpsQueryService = Mock() @SpringBean - ModelMapper modelMapper = Mock() + ModelMapper modelMapper = Spy() @Autowired MockMvc mvc @@ -153,7 +152,24 @@ class AdminRestControllerSpec extends Specification { response.status == HttpStatus.CREATED.value() } - @Unroll + def 'Create a schema set from a yang file that is greater than 1MB.'() { + given: 'a yang file greater than 1MB' + def multipartFile = createMultipartFileFromResource("/model-over-1mb.yang") + and: 'an endpoint' + def schemaSetEndpoint = "$basePath/v1/dataspaces/$dataspaceName/schema-sets" + when: 'a file is uploaded to the create schema set endpoint' + def response = + mvc.perform( + multipart(schemaSetEndpoint) + .file(multipartFile) + .param('schema-set-name', schemaSetName)) + .andReturn().response + then: 'the associated service method is invoked' + 1 * mockCpsModuleService.createSchemaSet(dataspaceName, schemaSetName, _) + and: 'the response code indicates success' + response.status == HttpStatus.CREATED.value() + } + def 'Create schema set from zip archive having #caseDescriptor.'() { given: 'an endpoint' def schemaSetEndpoint = "$basePath/v1/dataspaces/$dataspaceName/schema-sets" @@ -188,7 +204,6 @@ class AdminRestControllerSpec extends Specification { response.status == HttpStatus.BAD_REQUEST.value() } - @Unroll def 'Create schema set from #fileType file with IOException occurrence on processing.'() { given: 'an endpoint' def schemaSetEndpoint = "$basePath/v1/dataspaces/$dataspaceName/schema-sets" @@ -290,6 +305,18 @@ class AdminRestControllerSpec extends Specification { responseContent.contains(schemaSetName) } + def 'Delete anchor.'() { + given: 'an endpoint' + def anchorEndpoint = "$basePath/v1/dataspaces/$dataspaceName/anchors/$anchorName" + when: 'delete method is invoked on anchor endpoint' + def response = mvc.perform(delete(anchorEndpoint)).andReturn().response + then: 'associated service method is invoked with expected parameters' + 1 * mockCpsAdminService.deleteAnchor(dataspaceName, anchorName) + and: 'response code indicates success' + response.status == HttpStatus.NO_CONTENT.value() + } + + def createMultipartFile(filename, content) { return new MockMultipartFile("file", filename, "text/plain", content.getBytes()) } @@ -299,6 +326,11 @@ class AdminRestControllerSpec extends Specification { getClass().getResource(resourcePath).getBytes()) } + def createMultipartFileFromResource(resourcePath) { + return new MockMultipartFile("file", "test.yang", "application/text", + getClass().getResource(resourcePath).getBytes()) + } + def createMultipartFileForIOException(extension) { def multipartFile = Mock(MockMultipartFile) multipartFile.getOriginalFilename() >> "TEST." + extension