aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/common
diff options
context:
space:
mode:
authorGravatar Luis Fernando Pino Duque <lpino@google.com>2016-03-18 17:14:43 +0000
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2016-03-21 09:34:19 +0000
commit51a491b89a9cd5f15c9a093a5693bc37e696e6e1 (patch)
tree11e7c7e08ae7926aede36c4a0b2b012cf7c62f08 /src/test/java/com/google/devtools/common
parentc3620ef1b846be72fdf27d00a764a10d05e5cd4e (diff)
Add a new field to options called defaultMultipleValue which enables setting default values for
flags whose allowMultiple is true. The behavior is the following: - If allowMultiple is false then behave as previously. - Otherwise for retrieving the default we now look at defaultMultipleValue instead of defaultValue and in the process it will apply the converter to each element. If no defaultMultipleValue is specified then the default value will be an empty list. -- MOS_MIGRATED_REVID=117558645
Diffstat (limited to 'src/test/java/com/google/devtools/common')
-rw-r--r--src/test/java/com/google/devtools/common/options/OptionsParserTest.java32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/test/java/com/google/devtools/common/options/OptionsParserTest.java b/src/test/java/com/google/devtools/common/options/OptionsParserTest.java
index 0448471a2f..468139e056 100644
--- a/src/test/java/com/google/devtools/common/options/OptionsParserTest.java
+++ b/src/test/java/com/google/devtools/common/options/OptionsParserTest.java
@@ -96,6 +96,22 @@ public class OptionsParserTest {
public String boom;
}
+ /**
+ * Example with multiple default values
+ */
+ public static class ExampleMultiple extends OptionsBase {
+ @Option(name = "multiple",
+ defaultValue = "",
+ defaultMultipleValue = {"a", "b"},
+ allowMultiple = true)
+ public List<String> multiple;
+
+ @Option(name = "emptyMultiple",
+ defaultValue = "",
+ allowMultiple = true)
+ public List<String> emptyMultiple;
+ }
+
public static class StringConverter implements Converter<String> {
@Override
public String convert(String input) {
@@ -201,6 +217,22 @@ public class OptionsParserTest {
assertNull(boom.boom);
}
+ @Test
+ public void parseWithMultipleDefaultValues() throws OptionsParsingException {
+ OptionsParser parser = newOptionsParser(ExampleMultiple.class);
+ parser.parse();
+ ExampleMultiple multiple = parser.getOptions(ExampleMultiple.class);
+ assertThat(multiple.multiple).containsExactly("a", "b");
+ }
+
+ @Test
+ public void parseWithEmptyMultipleDefaultValues() throws OptionsParsingException {
+ OptionsParser parser = newOptionsParser(ExampleMultiple.class);
+ parser.parse();
+ ExampleMultiple multiple = parser.getOptions(ExampleMultiple.class);
+ assertThat(multiple.emptyMultiple).isEmpty();
+ }
+
public static class CategoryTest extends OptionsBase {
@Option(name = "swiss_bank_account_number",
category = "undocumented", // Not printed in usage messages!