From 472d2e8d8df431e46b0f0dead8448bff5e80ab0d Mon Sep 17 00:00:00 2001 From: Bruno Sakoto Date: Thu, 25 Feb 2021 23:23:09 -0500 Subject: [PATCH] Fix sonar issues * Set minimum code coverage to 80% * Remove unsafe http method vulnerability Issue-ID: CPS-213 Signed-off-by: Bruno Sakoto Change-Id: I917899a093fccc4317b0fa063137ec0276311f72 --- pom.xml | 114 ++++++++++++++++++++- .../cps/temporal/controller/QueryController.java | 4 +- .../controller/QuerryControllerSpec.groovy | 37 +++++++ .../org/onap/cps/temporal/ApplicationTest.java | 7 +- 4 files changed, 155 insertions(+), 7 deletions(-) create mode 100644 src/test/groovy/org/onap/cps/temporal/controller/QuerryControllerSpec.groovy diff --git a/pom.xml b/pom.xml index 30f64e8..8648046 100644 --- a/pom.xml +++ b/pom.xml @@ -20,20 +20,44 @@ 4.0.0 + - org.springframework.boot - spring-boot-starter-parent - 2.3.8.RELEASE - + org.onap.oparent + oparent + 3.2.0 + + org.onap.cps cps-temporal 0.0.1-SNAPSHOT cps-temporal CPS Temporal Service + 11 + 0.8 + + + + + org.springframework.boot + spring-boot-dependencies + 2.3.8.RELEASE + pom + import + + + org.spockframework + spock-bom + 2.0-M4-groovy-3.0 + pom + import + + + + org.springframework.boot @@ -43,6 +67,12 @@ org.springframework.boot spring-boot-starter-web + + + org.codehaus.groovy + groovy + 3.0.7 + org.springframework.boot spring-boot-starter-test @@ -54,6 +84,11 @@ + + org.spockframework + spock-core + test + @@ -62,6 +97,77 @@ org.springframework.boot spring-boot-maven-plugin + + + org.codehaus.gmavenplus + gmavenplus-plugin + 1.12.1 + + + + compile + compileTests + + + + + + org.apache.maven.plugins + maven-surefire-plugin + + + ${surefireArgLine} + false + + **/*Spec.java + **/*Test.java + + + + + org.jacoco + jacoco-maven-plugin + 0.8.6 + + + coverage-prepare-agent + + prepare-agent + + + + coverage-check + + check + + + ${project.build.directory}/code-coverage/jacoco-ut.exec + + + BUNDLE + + + INSTRUCTION + COVEREDRATIO + ${minimum-coverage} + + + + + + + + coverage-report + + report + + + ${project.build.directory}/code-coverage/jacoco-ut.exec + + + + diff --git a/src/main/java/org/onap/cps/temporal/controller/QueryController.java b/src/main/java/org/onap/cps/temporal/controller/QueryController.java index b12b451..d083dc9 100644 --- a/src/main/java/org/onap/cps/temporal/controller/QueryController.java +++ b/src/main/java/org/onap/cps/temporal/controller/QueryController.java @@ -18,7 +18,7 @@ package org.onap.cps.temporal.controller; -import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; /** @@ -27,7 +27,7 @@ import org.springframework.web.bind.annotation.RestController; @RestController public class QueryController { - @RequestMapping("/") + @GetMapping("/") public String home() { return "Welcome to CPS Temporal Service!"; } diff --git a/src/test/groovy/org/onap/cps/temporal/controller/QuerryControllerSpec.groovy b/src/test/groovy/org/onap/cps/temporal/controller/QuerryControllerSpec.groovy new file mode 100644 index 0000000..f718bf4 --- /dev/null +++ b/src/test/groovy/org/onap/cps/temporal/controller/QuerryControllerSpec.groovy @@ -0,0 +1,37 @@ +/* + * ============LICENSE_START======================================================= + * 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. + * ============LICENSE_END========================================================= + */ + +package org.onap.cps.temporal.controller + +import spock.lang.Specification + +/** + * Specification for Query Controller. + */ +class QueryControllerSpec extends Specification { + + def objectUnderTest = new QueryController() + + def 'Get home returns some data'() { + when: 'get home is invoked' + def response = objectUnderTest.home() + then: 'a response is returned' + ! response.empty + } + +} \ No newline at end of file diff --git a/src/test/java/org/onap/cps/temporal/ApplicationTest.java b/src/test/java/org/onap/cps/temporal/ApplicationTest.java index 8d5903f..842b94a 100644 --- a/src/test/java/org/onap/cps/temporal/ApplicationTest.java +++ b/src/test/java/org/onap/cps/temporal/ApplicationTest.java @@ -19,14 +19,19 @@ package org.onap.cps.temporal; +import org.assertj.core.util.Arrays; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; +// This test class without any assertion is obviously not really useful. +// Its only purpose is to be able to cover current code. +// It should be deleted when more code will be added to the project. @SpringBootTest class ApplicationTest { @Test - void contextLoads() { + void testMain() { + Application.main(Arrays.array()); } } -- 2.16.6