diff options
Diffstat (limited to 'src/test/java/com/google/devtools/common/options/OptionsDataTest.java')
-rw-r--r-- | src/test/java/com/google/devtools/common/options/OptionsDataTest.java | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/src/test/java/com/google/devtools/common/options/OptionsDataTest.java b/src/test/java/com/google/devtools/common/options/OptionsDataTest.java index ca777ed23e..d1f913197d 100644 --- a/src/test/java/com/google/devtools/common/options/OptionsDataTest.java +++ b/src/test/java/com/google/devtools/common/options/OptionsDataTest.java @@ -417,4 +417,47 @@ public class OptionsDataTest { assertThat(getOptionNames(data.getFieldsForClass(ReverseOrderedOptions.class))) .containsExactly("A", "B", "C").inOrder(); } + + /** Dummy options class. */ + public static class InvalidExpansionOptions extends OptionsBase { + @Option(name = "foo", defaultValue = "1") + public int foo; + + @Option( + name = "bar", + defaultValue = "1", + expansion = {"--foo=42"} + ) + public int bar; + } + + @Test + public void staticExpansionOptionsShouldNotHaveValues() { + try { + construct(InvalidExpansionOptions.class); + fail(); + } catch (ConstructionException e) { + // Expected exception + assertThat(e).hasMessageThat().contains( + "Option bar is an expansion flag with a static expansion, but does not have Void type."); + } + } + + /** Dummy options class. */ + public static class ValidExpansionOptions extends OptionsBase { + @Option(name = "foo", defaultValue = "1") + public int foo; + + @Option( + name = "bar", + defaultValue = "null", + expansion = {"--foo=42"} + ) + public Void bar; + } + + @Test + public void staticExpansionOptionsCanBeVoidType() { + construct(ValidExpansionOptions.class); + } } |