<snapshotNexusPath>/content/repositories/snapshots/</snapshotNexusPath>
<modelmapper.version>2.3.8</modelmapper.version>
<spock-core.version>2.0-M2-groovy-3.0</spock-core.version>
+ <spock-spring.version>1.3-groovy-2.5</spock-spring.version>
<springboot.version>2.3.3.RELEASE</springboot.version>
<springfox.version>3.0.0</springfox.version>
<swagger.version>2.1.4</swagger.version>
<artifactId>spock-core</artifactId>
<version>${spock-core.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.spockframework</groupId>
+ <artifactId>spock-spring</artifactId>
+ <version>${spock-spring.version}</version>
+ </dependency>
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib-nodep</artifactId>
<base.image>openjdk:11-jre-slim</base.image>
<java.version>11</java.version>
<jib-maven-plugin.version>2.6.0</jib-maven-plugin.version>
- <minimum-coverage>0.20</minimum-coverage>
+ <minimum-coverage>0.35</minimum-coverage>
<nexusproxy>https://nexus.onap.org</nexusproxy>
<oparent.version>3.1.0</oparent.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
+ <!--suppress UnresolvedMavenProperty -->
<argLine>${surefireArgLine}</argLine>
<useFile>false</useFile>
<includes>
<goal>check</goal>
</goals>
<configuration>
+ <excludes>
+ <exclude>org/onap/cps/rest/model/*</exclude>
+ </excludes>
<dataFile>${project.build.directory}/code-coverage/jacoco-ut.exec</dataFile>
<rules>
<rule>
<groupId>org.modelmapper</groupId>\r
<artifactId>modelmapper</artifactId>\r
</dependency>\r
- <dependency>\r
- <groupId>org.springframework.boot</groupId>\r
- <artifactId>spring-boot-starter-test</artifactId>\r
- <scope>test</scope>\r
- <exclusions>\r
- <exclusion>\r
- <groupId>org.junit.vintage</groupId>\r
- <artifactId>junit-vintage-engine</artifactId>\r
- </exclusion>\r
- </exclusions>\r
- </dependency>\r
<!-- T E S T D E P E N D E N C I E S -->\r
<dependency>\r
<groupId>org.codehaus.groovy</groupId>\r
<artifactId>spock-core</artifactId>\r
<scope>test</scope>\r
</dependency>\r
+ <dependency>\r
+ <groupId>org.spockframework</groupId>\r
+ <artifactId>spock-spring</artifactId>\r
+ <scope>test</scope>\r
+ </dependency>\r
<dependency>\r
<groupId>cglib</groupId>\r
<artifactId>cglib-nodep</artifactId>\r
<scope>test</scope>\r
</dependency>\r
+ <dependency>\r
+ <groupId>org.springframework.boot</groupId>\r
+ <artifactId>spring-boot-starter-test</artifactId>\r
+ <scope>test</scope>\r
+ <exclusions>\r
+ <exclusion>\r
+ <groupId>org.junit.vintage</groupId>\r
+ <artifactId>junit-vintage-engine</artifactId>\r
+ </exclusion>\r
+ </exclusions>\r
+ </dependency>\r
</dependencies>\r
\r
<build>\r
@RestControllerAdvice(assignableTypes = {CpsRestController.class})
public class CpsRestExceptionHandler {
+ private CpsRestExceptionHandler() {
+ }
+
/**
* Default exception handler.
*
package org.onap.cps.rest.exceptions
import groovy.json.JsonSlurper
+import org.modelmapper.ModelMapper
import org.onap.cps.api.CpsAdminService
import org.onap.cps.spi.exceptions.AnchorAlreadyDefinedException
import org.onap.cps.spi.exceptions.CpsException
import org.onap.cps.spi.exceptions.DataValidationException
import org.onap.cps.spi.exceptions.NotFoundInDataspaceException
import org.onap.cps.spi.exceptions.ModelValidationException
-import org.onap.cps.rest.controller.CpsRestController
import org.onap.cps.spi.exceptions.SchemaSetAlreadyDefinedException
+import org.spockframework.spring.SpringBean
+import org.springframework.beans.factory.annotation.Autowired
+import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest
+import org.springframework.test.web.servlet.MockMvc
import spock.lang.Shared
import spock.lang.Specification
import spock.lang.Unroll
import static org.springframework.http.HttpStatus.INTERNAL_SERVER_ERROR
import static org.springframework.http.HttpStatus.NOT_FOUND
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get
-import static org.springframework.test.web.servlet.setup.MockMvcBuilders.standaloneSetup
+@WebMvcTest
class CpsRestExceptionHandlerSpec extends Specification {
+ @SpringBean
+ CpsAdminService mockCpsAdminService = Mock()
+
+ @SpringBean
+ ModelMapper modelMapper = Mock()
+
+ @Autowired
+ MockMvc mvc
+
@Shared
def errorMessage = 'some error message'
@Shared
@Shared
def existingObjectName = 'MyAdminObject'
- def cpsRestController = new CpsRestController()
- def mockCpsAdminService = Mock(CpsAdminService.class)
- def objectUnderTest = new CpsRestExceptionHandler()
- def mockMvc = standaloneSetup(cpsRestController).setControllerAdvice(objectUnderTest).build()
-
- def setup() {
- cpsRestController.cpsAdminService = mockCpsAdminService
- }
def 'Get request with runtime exception returns HTTP Status Internal Server Error'() {
}
def performTestRequest() {
- return mockMvc.perform(get('/v1/dataspaces/dataspace-name/anchors')).andReturn().response
+ return mvc.perform(get('/v1/dataspaces/dataspace-name/anchors')).andReturn().response
}
- void assertTestResponse(response, expectedStatus, expectedErrorMessage, expectedErrorDetails) {
+ void assertTestResponse(response, expectedStatus,
+ expectedErrorMessage, expectedErrorDetails) {
assert response.status == expectedStatus.value()
def content = new JsonSlurper().parseText(response.contentAsString)
assert content['status'] == expectedStatus.toString()
assert content['message'] == expectedErrorMessage
assert expectedErrorDetails == null || content['details'] == expectedErrorDetails
}
-
}
import org.onap.cps.spi.entities.Dataspace;\r
import org.onap.cps.spi.entities.Fragment;\r
import org.springframework.data.jpa.repository.JpaRepository;\r
-import org.springframework.data.jpa.repository.Query;\r
-import org.springframework.data.repository.query.Param;\r
import org.springframework.stereotype.Repository;\r
\r
@Repository\r
* TODO
* clean up method to conform with spi proposal - https://jira.onap.org/browse/CPS-103
* Store the module from a yang model in the database.
+ * @deprecated
*
* @param namespace module namespace
* @param moduleContent module content
* @param revision module revision
* @param dataspaceName the name of the dataspace the module is associated with
*/
- @Deprecated
+ @Deprecated(forRemoval = true)
void storeModule(final String namespace, final String moduleContent, final String revision,
final String dataspaceName);
private static final long serialVersionUID = 1592619410918497467L;
- @Getter String details;
-
- /**
- * Constructor.
- *
- * @param cause the cause of the exception
- */
- public CpsException(final Throwable cause) {
- super(cause.getMessage(), cause);
- }
-
- /**
- * Constructor.
- *
- * @param message the error message
- * @param cause the cause of the exception
- */
- public CpsException(final String message, final Throwable cause) {
- super(message, cause);
- }
+ @Getter
+ final String details;
/**
* Constructor.
import java.util.Map;
import lombok.Builder;
import lombok.Data;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-import lombok.Setter;
@Data
@Builder