Test that valid code owner config cannot be updated to be non-parseable This slightly increases the test coverage for CodeOwnerConfigValidator from 89.4% to 89.9%. Signed-off-by: Edwin Kempin <ekempin@google.com> Change-Id: I46fa0625f98b0f653e246c2b4daeb9d72d7b4446
diff --git a/javatests/com/google/gerrit/plugins/codeowners/acceptance/api/CodeOwnerConfigValidatorIT.java b/javatests/com/google/gerrit/plugins/codeowners/acceptance/api/CodeOwnerConfigValidatorIT.java index 3dfa9db..c9f7916 100644 --- a/javatests/com/google/gerrit/plugins/codeowners/acceptance/api/CodeOwnerConfigValidatorIT.java +++ b/javatests/com/google/gerrit/plugins/codeowners/acceptance/api/CodeOwnerConfigValidatorIT.java
@@ -648,6 +648,41 @@ } @Test + public void cannotUpdateConfigToBeNonParseable() throws Exception { + CodeOwnerConfig.Key codeOwnerConfigKey = createCodeOwnerConfigKey("/"); + + // Create a code owner config without issues. + PushOneCommit.Result r = + createChange( + "Add code owners", + codeOwnerConfigOperations.codeOwnerConfig(codeOwnerConfigKey).getJGitFilePath(), + format( + CodeOwnerConfig.builder(codeOwnerConfigKey, TEST_REVISION) + .addCodeOwnerSet(CodeOwnerSet.createWithoutPathExpressions(admin.email())) + .build())); + r.assertOkStatus(); + + r = + createChange( + "Add code owners", + codeOwnerConfigOperations.codeOwnerConfig(codeOwnerConfigKey).getJGitFilePath(), + "INVALID"); + assertFatalWithMessages( + r, + "invalid code owner config files", + String.format( + "invalid code owner config file '%s' (project = %s, branch = master):\n %s", + codeOwnerConfigOperations.codeOwnerConfig(codeOwnerConfigKey).getFilePath(), + project, + getParsingErrorMessage( + ImmutableMap.of( + FindOwnersBackend.class, + "invalid line: INVALID", + ProtoBackend.class, + "1:8: expected \"{\"")))); + } + + @Test public void issuesAreReportedForAllInvalidConfigs() throws Exception { CodeOwnerConfig.Key codeOwnerConfigKey1 = createCodeOwnerConfigKey("/"); CodeOwnerConfig.Key codeOwnerConfigKey2 = createCodeOwnerConfigKey("/foo/bar/");