Add class with checker test data

Many test classes have tests with invalid data for checkers. Instead of
defining the invalid data again and again in each class define it once
in a new CheckerTestData class. Having this defined in a common place
makes the tests consistent and allows us to tests our assumptions about
this test data.

Change-Id: I5708fb80adbd5c6aa72dd10c4ccf0c5ca1f6e049
Signed-off-by: Edwin Kempin <ekempin@google.com>
diff --git a/java/com/google/gerrit/plugins/checks/acceptance/testsuite/CheckerTestData.java b/java/com/google/gerrit/plugins/checks/acceptance/testsuite/CheckerTestData.java
new file mode 100644
index 0000000..44883e2
--- /dev/null
+++ b/java/com/google/gerrit/plugins/checks/acceptance/testsuite/CheckerTestData.java
@@ -0,0 +1,42 @@
+// Copyright (C) 2019 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.gerrit.plugins.checks.acceptance.testsuite;
+
+public final class CheckerTestData {
+  /** An invalid checker UUID. */
+  public static final String INVALID_UUID = "notauuid";
+
+  /** An invalid checker URL that is not allowed to be set for a checker. */
+  public static final String INVALID_URL = "ftp://example.com/my-checker";
+
+  /**
+   * The unsupported operator that is used in {@link
+   * CheckerTestData#QUERY_WITH_UNSUPPORTED_OPERATOR}.
+   */
+  public static final String UNSUPPORTED_OPERATOR = "project";
+
+  /**
+   * Query that contains an operator that is not allowed to be used in checker queries.
+   *
+   * @see com.google.gerrit.plugins.checks.CheckerQuery#ALLOWED_OPERATORS
+   */
+  @SuppressWarnings("javadoc")
+  public static final String QUERY_WITH_UNSUPPORTED_OPERATOR = UNSUPPORTED_OPERATOR + ":foo";
+
+  /** Query that is not parsable. */
+  public static final String INVALID_QUERY = ":foo :bar";
+
+  private CheckerTestData() {}
+}
diff --git a/javatests/com/google/gerrit/plugins/checks/acceptance/api/CreateCheckIT.java b/javatests/com/google/gerrit/plugins/checks/acceptance/api/CreateCheckIT.java
index 649f1f4..fbb4f1d 100644
--- a/javatests/com/google/gerrit/plugins/checks/acceptance/api/CreateCheckIT.java
+++ b/javatests/com/google/gerrit/plugins/checks/acceptance/api/CreateCheckIT.java
@@ -25,6 +25,7 @@
 import com.google.gerrit.plugins.checks.CheckerUuid;
 import com.google.gerrit.plugins.checks.acceptance.AbstractCheckersTest;
 import com.google.gerrit.plugins.checks.acceptance.testsuite.CheckOperations.PerCheckOperations;
+import com.google.gerrit.plugins.checks.acceptance.testsuite.CheckerTestData;
 import com.google.gerrit.plugins.checks.api.CheckInfo;
 import com.google.gerrit.plugins.checks.api.CheckInput;
 import com.google.gerrit.plugins.checks.api.CheckState;
@@ -92,9 +93,9 @@
   }
 
   @Test
-  public void cannotCreateCheckForMalformedCheckerUuid() throws Exception {
+  public void cannotCreateCheckForInvalidCheckerUuid() throws Exception {
     CheckInput input = new CheckInput();
-    input.checkerUuid = "malformed::checker*UUID";
+    input.checkerUuid = CheckerTestData.INVALID_UUID;
     input.state = CheckState.RUNNING;
 
     exception.expect(BadRequestException.class);
@@ -175,7 +176,11 @@
   @Test
   public void canCreateCheckForCheckerWithUnsupportedOperatorInQuery() throws Exception {
     CheckerUuid checkerUuid =
-        checkerOperations.newChecker().repository(project).query("project:foo").create();
+        checkerOperations
+            .newChecker()
+            .repository(project)
+            .query(CheckerTestData.QUERY_WITH_UNSUPPORTED_OPERATOR)
+            .create();
 
     CheckInput input = new CheckInput();
     input.checkerUuid = checkerUuid.toString();
@@ -190,7 +195,11 @@
   @Test
   public void canCreateCheckForCheckerWithInvalidQuery() throws Exception {
     CheckerUuid checkerUuid =
-        checkerOperations.newChecker().repository(project).query(":foo :bar").create();
+        checkerOperations
+            .newChecker()
+            .repository(project)
+            .query(CheckerTestData.INVALID_QUERY)
+            .create();
 
     CheckInput input = new CheckInput();
     input.checkerUuid = checkerUuid.toString();
diff --git a/javatests/com/google/gerrit/plugins/checks/acceptance/api/CreateCheckerIT.java b/javatests/com/google/gerrit/plugins/checks/acceptance/api/CreateCheckerIT.java
index caee0a5..5474101 100644
--- a/javatests/com/google/gerrit/plugins/checks/acceptance/api/CreateCheckerIT.java
+++ b/javatests/com/google/gerrit/plugins/checks/acceptance/api/CreateCheckerIT.java
@@ -28,6 +28,7 @@
 import com.google.gerrit.plugins.checks.CheckerUuid;
 import com.google.gerrit.plugins.checks.acceptance.AbstractCheckersTest;
 import com.google.gerrit.plugins.checks.acceptance.testsuite.CheckerOperations.PerCheckerOperations;
+import com.google.gerrit.plugins.checks.acceptance.testsuite.CheckerTestData;
 import com.google.gerrit.plugins.checks.api.BlockingCondition;
 import com.google.gerrit.plugins.checks.api.CheckerInfo;
 import com.google.gerrit.plugins.checks.api.CheckerInput;
@@ -209,9 +210,9 @@
     CheckerUuid checkerUuid = checkerOperations.newChecker().name("my-checker").create();
 
     CheckerInput input = new CheckerInput();
-    input.url = "ftp://example.com/my-checker";
+    input.url = CheckerTestData.INVALID_URL;
     exception.expect(BadRequestException.class);
-    exception.expectMessage("only http/https URLs supported: ftp://example.com/my-checker");
+    exception.expectMessage("only http/https URLs supported: " + input.url);
     checkersApi.id(checkerUuid).update(input);
   }
 
@@ -278,11 +279,11 @@
   @Test
   public void createCheckerWithInvalidUuidFails() throws Exception {
     CheckerInput input = new CheckerInput();
-    input.uuid = "notauuid";
+    input.uuid = CheckerTestData.INVALID_UUID;
     input.repository = allProjects.get();
 
     exception.expect(BadRequestException.class);
-    exception.expectMessage("invalid uuid: notauuid");
+    exception.expectMessage("invalid uuid: " + input.uuid);
     checkersApi.create(input);
   }
 
@@ -389,13 +390,15 @@
     CheckerInput input = new CheckerInput();
     input.uuid = "test:my-checker";
     input.repository = allProjects.get();
-    input.query = "project:foo";
+    input.query = CheckerTestData.QUERY_WITH_UNSUPPORTED_OPERATOR;
 
     try {
       checkersApi.create(input).get();
       assert_().fail("expected BadRequestException");
     } catch (BadRequestException e) {
-      assertThat(e).hasMessageThat().isEqualTo("Unsupported operator: project");
+      assertThat(e)
+          .hasMessageThat()
+          .isEqualTo("Unsupported operator: " + CheckerTestData.UNSUPPORTED_OPERATOR);
     }
   }
 
@@ -404,7 +407,7 @@
     CheckerInput input = new CheckerInput();
     input.uuid = "test:my-checker";
     input.repository = allProjects.get();
-    input.query = ":foo :bar";
+    input.query = CheckerTestData.INVALID_QUERY;
 
     try {
       checkersApi.create(input).get();
diff --git a/javatests/com/google/gerrit/plugins/checks/acceptance/api/GetCheckIT.java b/javatests/com/google/gerrit/plugins/checks/acceptance/api/GetCheckIT.java
index 974a5bf..97abf39 100644
--- a/javatests/com/google/gerrit/plugins/checks/acceptance/api/GetCheckIT.java
+++ b/javatests/com/google/gerrit/plugins/checks/acceptance/api/GetCheckIT.java
@@ -28,6 +28,7 @@
 import com.google.gerrit.plugins.checks.CheckerUuid;
 import com.google.gerrit.plugins.checks.ListChecksOption;
 import com.google.gerrit.plugins.checks.acceptance.AbstractCheckersTest;
+import com.google.gerrit.plugins.checks.acceptance.testsuite.CheckerTestData;
 import com.google.gerrit.plugins.checks.api.BlockingCondition;
 import com.google.gerrit.plugins.checks.api.CheckInfo;
 import com.google.gerrit.plugins.checks.api.CheckState;
@@ -125,7 +126,11 @@
   @Test
   public void getCheckForCheckerWithUnsupportedOperatorInQuery() throws Exception {
     CheckerUuid checkerUuid =
-        checkerOperations.newChecker().repository(project).query("project:foo").create();
+        checkerOperations
+            .newChecker()
+            .repository(project)
+            .query(CheckerTestData.QUERY_WITH_UNSUPPORTED_OPERATOR)
+            .create();
 
     CheckKey checkKey = CheckKey.create(project, patchSetId, checkerUuid);
     checkOperations.newCheck(checkKey).setState(CheckState.RUNNING).upsert();
@@ -137,7 +142,11 @@
   @Test
   public void getCheckForCheckerWithInvalidQuery() throws Exception {
     CheckerUuid checkerUuid =
-        checkerOperations.newChecker().repository(project).query(":foo :bar").create();
+        checkerOperations
+            .newChecker()
+            .repository(project)
+            .query(CheckerTestData.INVALID_QUERY)
+            .create();
 
     CheckKey checkKey = CheckKey.create(project, patchSetId, checkerUuid);
     checkOperations.newCheck(checkKey).setState(CheckState.RUNNING).upsert();
@@ -231,8 +240,8 @@
   @Test
   public void getCheckForInvalidCheckerUuid() throws Exception {
     exception.expect(BadRequestException.class);
-    exception.expectMessage("invalid checker UUID: malformed::checker*UUID");
-    checksApiFactory.revision(patchSetId).id("malformed::checker*UUID");
+    exception.expectMessage("invalid checker UUID: " + CheckerTestData.INVALID_UUID);
+    checksApiFactory.revision(patchSetId).id(CheckerTestData.INVALID_UUID);
   }
 
   @Test
diff --git a/javatests/com/google/gerrit/plugins/checks/acceptance/api/GetCheckerIT.java b/javatests/com/google/gerrit/plugins/checks/acceptance/api/GetCheckerIT.java
index ee257bd..8c7d7b4 100644
--- a/javatests/com/google/gerrit/plugins/checks/acceptance/api/GetCheckerIT.java
+++ b/javatests/com/google/gerrit/plugins/checks/acceptance/api/GetCheckerIT.java
@@ -22,6 +22,7 @@
 import com.google.gerrit.extensions.restapi.RestApiException;
 import com.google.gerrit.plugins.checks.CheckerUuid;
 import com.google.gerrit.plugins.checks.acceptance.AbstractCheckersTest;
+import com.google.gerrit.plugins.checks.acceptance.testsuite.CheckerTestData;
 import com.google.gerrit.plugins.checks.api.BlockingCondition;
 import com.google.gerrit.plugins.checks.api.CheckerInfo;
 import com.google.gerrit.plugins.checks.api.CheckerStatus;
@@ -66,7 +67,7 @@
 
   @Test
   public void getCheckerWithUrl() throws Exception {
-    String url = "http://foo.bar";
+    String url = "http://example.com/my-checker";
     CheckerUuid checkerUuid = checkerOperations.newChecker().url(url).create();
 
     CheckerInfo info = checkersApi.id(checkerUuid).get();
@@ -75,11 +76,11 @@
 
   @Test
   public void getCheckerWithInvalidUrl() throws Exception {
-    String url = "ftp://example.com/my-checker";
-    CheckerUuid checkerUuid = checkerOperations.newChecker().url(url).create();
+    CheckerUuid checkerUuid =
+        checkerOperations.newChecker().url(CheckerTestData.INVALID_URL).create();
 
     CheckerInfo info = checkersApi.id(checkerUuid).get();
-    assertThat(info.url).isEqualTo(url);
+    assertThat(info.url).isEqualTo(CheckerTestData.INVALID_URL);
   }
 
   @Test
@@ -114,20 +115,23 @@
 
   @Test
   public void getCheckerWithUnsupportedOperatorInQuery() throws Exception {
-    String query = "project:foo";
-    CheckerUuid checkerUuid = checkerOperations.newChecker().query(query).create();
+    CheckerUuid checkerUuid =
+        checkerOperations
+            .newChecker()
+            .query(CheckerTestData.QUERY_WITH_UNSUPPORTED_OPERATOR)
+            .create();
 
     CheckerInfo info = checkersApi.id(checkerUuid).get();
-    assertThat(info.query).isEqualTo(query);
+    assertThat(info.query).isEqualTo(CheckerTestData.QUERY_WITH_UNSUPPORTED_OPERATOR);
   }
 
   @Test
   public void getCheckerWithInvalidQuery() throws Exception {
-    String query = ":foo :bar";
-    CheckerUuid checkerUuid = checkerOperations.newChecker().query(query).create();
+    CheckerUuid checkerUuid =
+        checkerOperations.newChecker().query(CheckerTestData.INVALID_QUERY).create();
 
     CheckerInfo info = checkersApi.id(checkerUuid).get();
-    assertThat(info.query).isEqualTo(query);
+    assertThat(info.query).isEqualTo(CheckerTestData.INVALID_QUERY);
   }
 
   @Test
diff --git a/javatests/com/google/gerrit/plugins/checks/acceptance/api/ListPendingChecksIT.java b/javatests/com/google/gerrit/plugins/checks/acceptance/api/ListPendingChecksIT.java
index 5c7d2d4..18b7fe3 100644
--- a/javatests/com/google/gerrit/plugins/checks/acceptance/api/ListPendingChecksIT.java
+++ b/javatests/com/google/gerrit/plugins/checks/acceptance/api/ListPendingChecksIT.java
@@ -29,6 +29,7 @@
 import com.google.gerrit.plugins.checks.CheckKey;
 import com.google.gerrit.plugins.checks.CheckerUuid;
 import com.google.gerrit.plugins.checks.acceptance.AbstractCheckersTest;
+import com.google.gerrit.plugins.checks.acceptance.testsuite.CheckerTestData;
 import com.google.gerrit.plugins.checks.api.CheckState;
 import com.google.gerrit.plugins.checks.api.PendingCheckInfo;
 import com.google.gerrit.plugins.checks.api.PendingChecksInfo;
@@ -73,10 +74,10 @@
   }
 
   @Test
-  public void cannotListPendingChecksForMalformedCheckerUuid() throws Exception {
+  public void cannotListPendingChecksForInvalidCheckerUuid() throws Exception {
     exception.expect(BadRequestException.class);
-    exception.expectMessage("invalid checker UUID: malformed::checker*UUID");
-    pendingChecksApi.list("malformed::checker*UUID");
+    exception.expectMessage("invalid checker UUID: " + CheckerTestData.INVALID_UUID);
+    pendingChecksApi.list(CheckerTestData.INVALID_UUID);
   }
 
   @Test
diff --git a/javatests/com/google/gerrit/plugins/checks/acceptance/api/UpdateCheckIT.java b/javatests/com/google/gerrit/plugins/checks/acceptance/api/UpdateCheckIT.java
index ff4b381..7ae4fac 100644
--- a/javatests/com/google/gerrit/plugins/checks/acceptance/api/UpdateCheckIT.java
+++ b/javatests/com/google/gerrit/plugins/checks/acceptance/api/UpdateCheckIT.java
@@ -21,6 +21,7 @@
 import com.google.gerrit.plugins.checks.CheckKey;
 import com.google.gerrit.plugins.checks.CheckerUuid;
 import com.google.gerrit.plugins.checks.acceptance.AbstractCheckersTest;
+import com.google.gerrit.plugins.checks.acceptance.testsuite.CheckerTestData;
 import com.google.gerrit.plugins.checks.api.CheckInfo;
 import com.google.gerrit.plugins.checks.api.CheckInput;
 import com.google.gerrit.plugins.checks.api.CheckState;
@@ -79,7 +80,11 @@
 
   @Test
   public void canUpdateCheckForCheckerWithUnsupportedOperatorInQuery() throws Exception {
-    checkerOperations.checker(checkKey.checkerUuid()).forUpdate().query("project:foo").update();
+    checkerOperations
+        .checker(checkKey.checkerUuid())
+        .forUpdate()
+        .query(CheckerTestData.QUERY_WITH_UNSUPPORTED_OPERATOR)
+        .update();
 
     CheckInput input = new CheckInput();
     input.state = CheckState.SUCCESSFUL;
@@ -90,7 +95,11 @@
 
   @Test
   public void canUpdateCheckForCheckerWithInvalidQuery() throws Exception {
-    checkerOperations.checker(checkKey.checkerUuid()).forUpdate().query(":foo :bar").update();
+    checkerOperations
+        .checker(checkKey.checkerUuid())
+        .forUpdate()
+        .query(CheckerTestData.INVALID_QUERY)
+        .update();
 
     CheckInput input = new CheckInput();
     input.state = CheckState.SUCCESSFUL;
diff --git a/javatests/com/google/gerrit/plugins/checks/acceptance/api/UpdateCheckerIT.java b/javatests/com/google/gerrit/plugins/checks/acceptance/api/UpdateCheckerIT.java
index 8c4af46..39cd9ad 100644
--- a/javatests/com/google/gerrit/plugins/checks/acceptance/api/UpdateCheckerIT.java
+++ b/javatests/com/google/gerrit/plugins/checks/acceptance/api/UpdateCheckerIT.java
@@ -30,6 +30,7 @@
 import com.google.gerrit.plugins.checks.CheckerUuid;
 import com.google.gerrit.plugins.checks.acceptance.AbstractCheckersTest;
 import com.google.gerrit.plugins.checks.acceptance.testsuite.CheckerOperations.PerCheckerOperations;
+import com.google.gerrit.plugins.checks.acceptance.testsuite.CheckerTestData;
 import com.google.gerrit.plugins.checks.api.BlockingCondition;
 import com.google.gerrit.plugins.checks.api.CheckerInfo;
 import com.google.gerrit.plugins.checks.api.CheckerInput;
@@ -412,7 +413,7 @@
     CheckerUuid checkerUuid = checkerOperations.newChecker().name("my-checker").create();
 
     CheckerInput input = new CheckerInput();
-    input.url = "ftp://example.com/my-checker";
+    input.url = CheckerTestData.INVALID_URL;
     exception.expect(BadRequestException.class);
     exception.expectMessage("only http/https URLs supported: ftp://example.com/my-checker");
     checkersApi.id(checkerUuid).update(input);
@@ -538,12 +539,14 @@
     Optional<String> oldQuery = checkerOperations.checker(checkerUuid).get().getQuery();
 
     CheckerInput input = new CheckerInput();
-    input.query = "project:foo";
+    input.query = CheckerTestData.QUERY_WITH_UNSUPPORTED_OPERATOR;
     try {
       checkersApi.id(checkerUuid).update(input);
       assert_().fail("expected BadRequestException");
     } catch (BadRequestException e) {
-      assertThat(e).hasMessageThat().isEqualTo("Unsupported operator: project");
+      assertThat(e)
+          .hasMessageThat()
+          .isEqualTo("Unsupported operator: " + CheckerTestData.UNSUPPORTED_OPERATOR);
     }
 
     assertThat(checkerOperations.checker(checkerUuid).get().getQuery()).isEqualTo(oldQuery);
@@ -556,7 +559,7 @@
     Optional<String> oldQuery = checkerOperations.checker(checkerUuid).get().getQuery();
 
     CheckerInput input = new CheckerInput();
-    input.query = ":foo :bar";
+    input.query = CheckerTestData.INVALID_QUERY;
     try {
       checkersApi.id(checkerUuid).update(input);
       assert_().fail("expected BadRequestException");
diff --git a/javatests/com/google/gerrit/plugins/checks/acceptance/testsuite/CheckerTestDataTest.java b/javatests/com/google/gerrit/plugins/checks/acceptance/testsuite/CheckerTestDataTest.java
new file mode 100644
index 0000000..6042dd0
--- /dev/null
+++ b/javatests/com/google/gerrit/plugins/checks/acceptance/testsuite/CheckerTestDataTest.java
@@ -0,0 +1,66 @@
+// Copyright (C) 2019 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.gerrit.plugins.checks.acceptance.testsuite;
+
+import static com.google.common.truth.Truth.assertThat;
+import static com.google.common.truth.Truth.assert_;
+
+import com.google.gerrit.extensions.restapi.BadRequestException;
+import com.google.gerrit.plugins.checks.CheckerQuery;
+import com.google.gerrit.plugins.checks.CheckerUrl;
+import com.google.gerrit.plugins.checks.CheckerUuid;
+import com.google.gerrit.plugins.checks.acceptance.AbstractCheckersTest;
+import org.junit.Test;
+
+public class CheckerTestDataTest extends AbstractCheckersTest {
+  @Test
+  public void verifyTestUuids() throws Exception {
+    assertThat(CheckerUuid.isUuid(CheckerTestData.INVALID_UUID)).isFalse();
+  }
+
+  @Test
+  public void verifyTestUrls() throws Exception {
+    try {
+      CheckerUrl.clean(CheckerTestData.INVALID_URL);
+      assert_().fail("expected BadRequestException");
+    } catch (BadRequestException e) {
+      assertMessage(e, "only http/https URLs supported", CheckerTestData.INVALID_URL);
+    }
+  }
+
+  @Test
+  public void verifyTestQueries() throws Exception {
+    assertInvalidQuery(
+        CheckerTestData.QUERY_WITH_UNSUPPORTED_OPERATOR,
+        "unsupported operator",
+        CheckerTestData.UNSUPPORTED_OPERATOR);
+    assertInvalidQuery(CheckerTestData.INVALID_QUERY, "invalid", CheckerTestData.INVALID_QUERY);
+  }
+
+  private static void assertInvalidQuery(String query, String... expectedMessageParts) {
+    try {
+      CheckerQuery.clean(query);
+      assert_().fail("expected BadRequestException");
+    } catch (BadRequestException e) {
+      assertMessage(e, expectedMessageParts);
+    }
+  }
+
+  private static void assertMessage(Exception e, String... expectedMessageParts) {
+    for (String expectedMessagePart : expectedMessageParts) {
+      assertThat(e).hasMessageThat().ignoringCase().contains(expectedMessagePart);
+    }
+  }
+}