diff options
Diffstat (limited to 'src/test/java/com/google/devtools/common')
-rw-r--r-- | src/test/java/com/google/devtools/common/options/OptionsParserTest.java | 22 |
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 { |