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:26:32 UTC
[groovy] branch GROOVY_2_5_X 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 GROOVY_2_5_X
in repository https://gitbox.apache.org/repos/asf/groovy.git
The following commit(s) were added to refs/heads/GROOVY_2_5_X by this push:
new ede7ffc GROOVY-9599: respect empty String as default value in CliBuilder
ede7ffc is described below
commit ede7ffca2bf151471cfc888ee41d4c4f68d3d906
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
(cherry picked from commit 16a5c42e53c440d3675d7b7cb91113a584663b86)
---
.../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 d6d66b5..8180e19 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
@@ -1101,4 +1101,16 @@ Usage: groovy [-hiV] [-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 == ''
+ }
}