Clarify usage of @GerritConfig#value() and #values()
If the value() is given, it takes precedence over values(), i.e.
values() is ignored if value() is specified.
Add Javadoc and a test to clarify this behavior.
Change-Id: I1bf8bd732f973a8d7106601d54680728ad1e0763
diff --git a/gerrit-acceptance-framework/src/test/java/com/google/gerrit/acceptance/GerritConfig.java b/gerrit-acceptance-framework/src/test/java/com/google/gerrit/acceptance/GerritConfig.java
index 88e60dc..44323e4 100644
--- a/gerrit-acceptance-framework/src/test/java/com/google/gerrit/acceptance/GerritConfig.java
+++ b/gerrit-acceptance-framework/src/test/java/com/google/gerrit/acceptance/GerritConfig.java
@@ -34,7 +34,13 @@
*/
String name();
+ /**
+ * Single value. Takes precedence over values specified in {@code values}.
+ */
String value() default "";
+ /**
+ * Multiple values (list). Ignored if {@code value} is specified.
+ */
String[] values() default "";
}
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/annotation/UseGerritConfigAnnotationTest.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/annotation/UseGerritConfigAnnotationTest.java
index 8e75c97..451af0f 100644
--- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/annotation/UseGerritConfigAnnotationTest.java
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/annotation/UseGerritConfigAnnotationTest.java
@@ -66,4 +66,16 @@
.asList()
.containsExactly("value-1", "value-2");
}
+
+ @Test
+ @GerritConfig(
+ name = "section.name",
+ value = "value-1",
+ values = {"value-2", "value-3"}
+ )
+ public void valueHasPrecedenceOverValues() {
+ assertThat(cfg.getStringList("section", null, "name"))
+ .asList()
+ .containsExactly("value-1");
+ }
}