Increase of UT coverage in project 47/65547/2
authorkjaniak <kornel.janiak@nokia.com>
Mon, 10 Sep 2018 13:06:34 +0000 (15:06 +0200)
committerkjaniak <kornel.janiak@nokia.com>
Tue, 11 Sep 2018 06:48:07 +0000 (08:48 +0200)
Change-Id: I8ac9ce21b5034f795da19e27e42ba95ce87db10d
Issue-ID: DCAEGEN2-741
Signed-off-by: kjaniak <kornel.janiak@nokia.com>
hv-collector-utils/src/main/kotlin/org/onap/dcae/collectors/veshv/utils/commandline/WrongArgumentError.kt
hv-collector-utils/src/test/kotlin/org/onap/dcae/collectors/veshv/utils/arrow/CoreKtTest.kt
hv-collector-utils/src/test/kotlin/org/onap/dcae/collectors/veshv/utils/commandline/WrongArgumentErrorTest.kt [new file with mode: 0644]

index 61a461f..9c2a20c 100644 (file)
@@ -45,22 +45,25 @@ data class WrongArgumentError(
 
         formatter.printHelp(
                 programName,
-                generateRequiredParametersNote(),
+                generateRequiredParametersNote(cmdLineOptionsList),
                 getOptions(),
                 footer)
     }
 
-    private fun getOptions(): Options = cmdLineOptionsList.map { it.option }.fold(Options(), Options::addOption)
+    private fun getOptions() = cmdLineOptionsList.map { it.option }.fold(Options(), Options::addOption)
 
-    private fun generateRequiredParametersNote(): String {
-        val requiredParams = Option.fromNullable(cmdLineOptionsList.filter { it.required }
-                .takeUnless { it.isEmpty() })
-        return requiredParams.fold(
-                { "" },
-                { it.map {commandLineOption -> commandLineOption.option.opt }
-                        .joinToString(prefix = "Required parameters: ", separator = ", ")
-                }
-        )
+    companion object {
+        fun generateRequiredParametersNote(cmdLineOptionsList: List<CommandLineOption>): String {
+            val requiredParams = Option.fromNullable(cmdLineOptionsList.filter { it.required }
+                    .takeUnless { it.isEmpty() })
+            return requiredParams.fold(
+                    { "" },
+                    {
+                        it.map { commandLineOption -> commandLineOption.option.opt }
+                                .joinToString(prefix = "Required parameters: ", separator = ", ")
+                    }
+            )
+        }
     }
 
 }
index 2935943..2eb11b2 100644 (file)
@@ -28,7 +28,6 @@ import org.jetbrains.spek.api.dsl.describe
 import org.jetbrains.spek.api.dsl.given
 import org.jetbrains.spek.api.dsl.it
 import org.jetbrains.spek.api.dsl.on
-import org.jetbrains.spek.api.dsl.xdescribe
 import java.util.concurrent.atomic.AtomicReference
 
 
diff --git a/hv-collector-utils/src/test/kotlin/org/onap/dcae/collectors/veshv/utils/commandline/WrongArgumentErrorTest.kt b/hv-collector-utils/src/test/kotlin/org/onap/dcae/collectors/veshv/utils/commandline/WrongArgumentErrorTest.kt
new file mode 100644 (file)
index 0000000..63d9eb8
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+ * ============LICENSE_START=======================================================
+ * dcaegen2-collectors-veshv
+ * ================================================================================
+ * Copyright (C) 2018 NOKIA
+ * ================================================================================
+ * 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.dcae.collectors.veshv.utils.commandline
+
+import org.assertj.core.api.Assertions.assertThat
+import org.jetbrains.spek.api.Spek
+import org.jetbrains.spek.api.dsl.describe
+import org.jetbrains.spek.api.dsl.given
+import org.jetbrains.spek.api.dsl.it
+import org.jetbrains.spek.api.dsl.on
+import org.onap.dcae.collectors.veshv.utils.commandline.CommandLineOption.HEALTH_CHECK_API_PORT
+import org.onap.dcae.collectors.veshv.utils.commandline.CommandLineOption.LISTEN_PORT
+
+class WrongArgumentErrorTest : Spek ({
+
+    describe("help message logic test") {
+
+        given("at least one required option") {
+            val filledOptionList = listOf(
+                    HEALTH_CHECK_API_PORT,
+                    LISTEN_PORT)
+            on("help message preparation") {
+                val requiredParameters = WrongArgumentError.generateRequiredParametersNote(filledOptionList)
+
+                it("should print out required fields") {
+                    assertThat(requiredParameters).isEqualTo("Required parameters: p")
+                }
+            }
+        }
+
+        given("no required option") {
+            val filledOptionList = listOf(HEALTH_CHECK_API_PORT)
+
+            on("help message preparation") {
+                val requiredParameters = WrongArgumentError.generateRequiredParametersNote(filledOptionList)
+
+                it("should not print required fields") {
+                    assertThat(requiredParameters).isEqualTo("")
+                }
+            }
+        }
+    }
+
+})
\ No newline at end of file