You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by rp...@apache.org on 2020/06/22 00:19:14 UTC
[groovy] branch master updated: GROOVY-9599: respect empty String
as default value in CliBuilder
This is an automated email from the ASF dual-hosted git repository.
rpopma pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/groovy.git
The following commit(s) were added to refs/heads/master by this push:
new 16a5c42 GROOVY-9599: respect empty String as default value in CliBuilder
16a5c42 is described below
commit 16a5c42e53c440d3675d7b7cb91113a584663b86
Author: Remko Popma <re...@yahoo.com>
AuthorDate: Mon Jun 22 09:19:03 2020 +0900
GROOVY-9599: respect empty String as default value in CliBuilder
---
.../src/main/groovy/groovy/cli/picocli/CliBuilder.groovy | 2 +-
.../src/test/groovy/groovy/cli/picocli/CliBuilderTest.groovy | 12 ++++++++++++
2 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/subprojects/groovy-cli-picocli/src/main/groovy/groovy/cli/picocli/CliBuilder.groovy b/subprojects/groovy-cli-picocli/src/main/groovy/groovy/cli/picocli/CliBuilder.groovy
index 914360a..e9248c5 100644
--- a/subprojects/groovy-cli-picocli/src/main/groovy/groovy/cli/picocli/CliBuilder.groovy
+++ b/subprojects/groovy-cli-picocli/src/main/groovy/groovy/cli/picocli/CliBuilder.groovy
@@ -940,7 +940,7 @@ class CliBuilder {
m.remove('args')
m.remove('optionalArg')
}
- if (!m.defaultValue) {
+ if (!m.containsKey('defaultValue')) { // GROOVY-9599
m.remove('defaultValue') // don't default the picocli model to empty string
}
def result = m.collectMany { k, v ->
diff --git a/subprojects/groovy-cli-picocli/src/test/groovy/groovy/cli/picocli/CliBuilderTest.groovy b/subprojects/groovy-cli-picocli/src/test/groovy/groovy/cli/picocli/CliBuilderTest.groovy
index 0693d0f..3928b94 100644
--- a/subprojects/groovy-cli-picocli/src/test/groovy/groovy/cli/picocli/CliBuilderTest.groovy
+++ b/subprojects/groovy-cli-picocli/src/test/groovy/groovy/cli/picocli/CliBuilderTest.groovy
@@ -1086,4 +1086,16 @@ Usage: groovy [-hV] [-cp] [-pa] [-pr] [--configscript=PARAM]
assert Integer == opts.i.getClass()
assert opts.i == 0
}
+
+ // GROOVY-9599
+ void testStringOptionWithDefaultEmptyStringShouldNotConvertToFalseOrNullObject() {
+ def cli = new CliBuilder()
+ cli.s(type: String, longOpt: 'strTest', required: false, args: 1, defaultValue: '', 'Testing string with default empty string')
+
+ def opts = cli.parse([]) // no args, so defaults are applied
+ assert opts
+
+ assert String == opts.s.getClass()
+ assert opts.s == ''
+ }
}