aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/common
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/com/google/devtools/common')
-rw-r--r--src/test/java/com/google/devtools/common/options/OptionsParserTest.java22
1 files changed, 22 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 468139e056..96845a1ff6 100644
--- a/src/test/java/com/google/devtools/common/options/OptionsParserTest.java
+++ b/src/test/java/com/google/devtools/common/options/OptionsParserTest.java
@@ -86,6 +86,15 @@ public class OptionsParserTest {
public String baz;
}
+ /** Subclass of an options class. */
+ public static class ExampleBazSubclass extends ExampleBaz {
+
+ @Option(name = "baz_subclass",
+ category = "one",
+ defaultValue = "defaultBazSubclass")
+ public String bazSubclass;
+ }
+
/**
* Example with empty to null string converter
*/
@@ -146,6 +155,19 @@ public class OptionsParserTest {
}
@Test
+ public void parseWithOptionsInheritance() throws OptionsParsingException {
+ OptionsParser parser = newOptionsParser(ExampleBazSubclass.class);
+ parser.parse("--baz_subclass=cat", "--baz=dog");
+ ExampleBazSubclass subclassOptions = parser.getOptions(ExampleBazSubclass.class);
+ assertThat(subclassOptions.bazSubclass).isEqualTo("cat");
+ assertThat(subclassOptions.baz).isEqualTo("dog");
+ ExampleBaz options = parser.getOptions(ExampleBaz.class);
+ // This is a test showcasing the lack of functionality for retrieving parsed options at a
+ // superclass type class type. If there's a need for this functionality, we can add it later.
+ assertThat(options).isNull();
+ }
+
+ @Test
public void parserWithUnknownOption() {
OptionsParser parser = newOptionsParser(ExampleFoo.class, ExampleBaz.class);
try {