Increase code coverage in clamp-common 93/122093/6
authorwaynedunican <wayne.dunican@est.tech>
Fri, 18 Jun 2021 14:06:29 +0000 (15:06 +0100)
committerWayne Dunican <wayne.dunican@est.tech>
Wed, 23 Jun 2021 14:58:27 +0000 (15:58 +0100)
Issue-ID: POLICY-3403
Change-Id: Ic66b52da8a6256d2a65c2c2767b939e94a417875
Signed-off-by: waynedunican <wayne.dunican@est.tech>
common/src/main/java/org/onap/policy/clamp/controlloop/common/startstop/CommonCommandLineArguments.java
common/src/test/java/org/onap/policy/clamp/controlloop/common/startstop/CommonCommandLineArgumentsTest.java [new file with mode: 0644]
pom.xml

index ebc9028..525da25 100644 (file)
@@ -139,7 +139,7 @@ public class CommonCommandLineArguments {
         }
         if (!theFile.canRead()) {
             throw new ControlLoopException(Response.Status.NOT_ACCEPTABLE,
-                    fileTag + FILE_MESSAGE_PREAMBLE + fileName + "\" is ureadable");
+                    fileTag + FILE_MESSAGE_PREAMBLE + fileName + "\" is unreadable");
         }
     }
 }
diff --git a/common/src/test/java/org/onap/policy/clamp/controlloop/common/startstop/CommonCommandLineArgumentsTest.java b/common/src/test/java/org/onap/policy/clamp/controlloop/common/startstop/CommonCommandLineArgumentsTest.java
new file mode 100644 (file)
index 0000000..2d30592
--- /dev/null
@@ -0,0 +1,80 @@
+/*-
+ * ============LICENSE_START=======================================================
+ *  Copyright (C) 2021 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.policy.clamp.controlloop.common.startstop;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatCode;
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
+
+import org.apache.commons.cli.Options;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Test;
+
+public class CommonCommandLineArgumentsTest {
+
+    public static CommonCommandLineArguments cli;
+
+    @BeforeAll
+    static void setup() {
+        cli = new CommonCommandLineArguments(new Options());
+    }
+
+    @Test
+    void testConstructor() {
+        assertThat(cli).isNotNull();
+    }
+
+    @Test
+    void testHelp() {
+        assertThat(cli.help("DummyClass", new Options()))
+                .contains("DummyClass [options...]\noptions");
+    }
+
+    @Test
+    void testVersion() {
+        assertThatCode(() -> cli.version()).doesNotThrowAnyException();
+    }
+
+    @Test
+    void testValidateEmptyFileName() {
+        assertThatThrownBy(() -> cli.validate(""))
+            .hasMessageContaining("file was not specified as an argument");
+    }
+
+    @Test
+    void testValidateFileUrlNull() {
+        assertThatThrownBy(() -> cli.validate("abcd"))
+                .hasMessageContaining("does not exist");
+    }
+
+    @Test
+    void testValidateFileFound() {
+        String configFile = "demo/config/RuntimeConfig.json";
+        assertThatCode(() -> cli.validate(configFile)).doesNotThrowAnyException();
+    }
+
+    @Test
+    void testValidateNotNormalFile() {
+        String badFile = "demo/config";
+        assertThatThrownBy(() -> cli.validate(badFile)).hasMessageContaining("is not a normal file");
+    }
+
+}
diff --git a/pom.xml b/pom.xml
index b9d0efd..8661998 100644 (file)
--- a/pom.xml
+++ b/pom.xml
             <artifactId>junit</artifactId>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>org.junit.jupiter</groupId>
+            <artifactId>junit-jupiter-engine</artifactId>
+            <version>5.7.1</version>
+            <scope>test</scope>
+        </dependency>
         <dependency>
             <groupId>commons-cli</groupId>
             <artifactId>commons-cli</artifactId>