Merge branch 'stable-3.14' * stable-3.14: Fix flaky issue validation tests Change-Id: I0d5c6224066fbc27ca9b145c0078571653684872
diff --git a/src/test/java/com/googlesource/gerrit/plugins/its/base/validation/ItsValidateCommentTest.java b/src/test/java/com/googlesource/gerrit/plugins/its/base/validation/ItsValidateCommentTest.java index abdabd7..059a3e4 100644 --- a/src/test/java/com/googlesource/gerrit/plugins/its/base/validation/ItsValidateCommentTest.java +++ b/src/test/java/com/googlesource/gerrit/plugins/its/base/validation/ItsValidateCommentTest.java
@@ -45,6 +45,12 @@ import org.eclipse.jgit.transport.ReceiveCommand; public class ItsValidateCommentTest extends LoggingMockingTestCase { + private static final String BUG_ID_1 = "4711"; + private static final String BUG_ID_2 = "42"; + private static final String SINGLE_BUG_MESSAGE = String.format("bug#%s", BUG_ID_1); + private static final String MULTIPLE_BUG_MESSAGE = + String.format("bug#%s, bug#%s", BUG_ID_1, BUG_ID_2); + private Injector injector; private IssueExtractor issueExtractor; private ItsFacade itsFacade; @@ -141,41 +147,41 @@ List<CommitValidationMessage> ret; ItsValidateComment ivc = injector.getInstance(ItsValidateComment.class); ReceiveCommand command = mock(ReceiveCommand.class); - RevCommit commit = createCommit("bug#4711"); + RevCommit commit = createCommit(SINGLE_BUG_MESSAGE); CommitReceivedEvent event = newCommitReceivedEvent(command, project, null, commit, null); when(itsConfig.getItsAssociationPolicy()).thenReturn(ItsAssociationPolicy.SUGGESTED); - when(issueExtractor.getIssueIds("bug#4711")).thenReturn(new String[] {"4711"}); + when(issueExtractor.getIssueIds(SINGLE_BUG_MESSAGE)).thenReturn(new String[] {BUG_ID_1}); when(itsFacadeFactory.getFacade(projectName)).thenReturn(itsFacade); - when(itsFacade.exists("4711")).thenReturn(true); + when(itsFacade.exists(BUG_ID_1)).thenReturn(true); ret = ivc.onCommitReceived(event); assertEmptyList(ret); verifyOneOrMore(itsConfig).getItsAssociationPolicy(); - verifyOneOrMore(issueExtractor).getIssueIds("bug#4711"); - verifyOneOrMore(itsFacade).exists("4711"); + verifyOneOrMore(issueExtractor).getIssueIds(SINGLE_BUG_MESSAGE); + verifyOneOrMore(itsFacade).exists(BUG_ID_1); } public void testMandatoryMatchingSingleExisting() throws CommitValidationException, IOException { List<CommitValidationMessage> ret; ItsValidateComment ivc = injector.getInstance(ItsValidateComment.class); ReceiveCommand command = mock(ReceiveCommand.class); - RevCommit commit = createCommit("bug#4711"); + RevCommit commit = createCommit(SINGLE_BUG_MESSAGE); CommitReceivedEvent event = newCommitReceivedEvent(command, project, null, commit, null); when(itsConfig.getItsAssociationPolicy()).thenReturn(ItsAssociationPolicy.MANDATORY); - when(issueExtractor.getIssueIds("bug#4711")).thenReturn(new String[] {"4711"}); + when(issueExtractor.getIssueIds(SINGLE_BUG_MESSAGE)).thenReturn(new String[] {BUG_ID_1}); when(itsFacadeFactory.getFacade(projectName)).thenReturn(itsFacade); - when(itsFacade.exists("4711")).thenReturn(true); + when(itsFacade.exists(BUG_ID_1)).thenReturn(true); ret = ivc.onCommitReceived(event); assertEmptyList(ret); verifyOneOrMore(itsConfig).getItsAssociationPolicy(); - verifyOneOrMore(issueExtractor).getIssueIds("bug#4711"); - verifyOneOrMore(itsFacade).exists("4711"); + verifyOneOrMore(issueExtractor).getIssueIds(SINGLE_BUG_MESSAGE); + verifyOneOrMore(itsFacade).exists(BUG_ID_1); } public void testSuggestedMatchingSingleNonExisting() @@ -183,13 +189,13 @@ List<CommitValidationMessage> ret; ItsValidateComment ivc = injector.getInstance(ItsValidateComment.class); ReceiveCommand command = mock(ReceiveCommand.class); - RevCommit commit = createCommit("bug#4711"); + RevCommit commit = createCommit(SINGLE_BUG_MESSAGE); CommitReceivedEvent event = newCommitReceivedEvent(command, project, null, commit, null); when(itsConfig.getItsAssociationPolicy()).thenReturn(ItsAssociationPolicy.SUGGESTED); - when(issueExtractor.getIssueIds("bug#4711")).thenReturn(new String[] {"4711"}); + when(issueExtractor.getIssueIds(SINGLE_BUG_MESSAGE)).thenReturn(new String[] {BUG_ID_1}); when(itsFacadeFactory.getFacade(projectName)).thenReturn(itsFacade); - when(itsFacade.exists("4711")).thenReturn(false); + when(itsFacade.exists(BUG_ID_1)).thenReturn(false); ret = ivc.onCommitReceived(event); @@ -199,24 +205,25 @@ "Non-existing issue-ids referenced in commit message", CommitValidationMessage.Type.WARNING), new CommitValidationMessage( - "4711 not found in ItsTestName issue tracker", CommitValidationMessage.Type.HINT)) + BUG_ID_1 + " not found in ItsTestName issue tracker", + CommitValidationMessage.Type.HINT)) .inOrder(); verifyOneOrMore(itsConfig).getItsAssociationPolicy(); - verifyOneOrMore(issueExtractor).getIssueIds("bug#4711"); - verifyOneOrMore(itsFacade).exists("4711"); + verifyOneOrMore(issueExtractor).getIssueIds(SINGLE_BUG_MESSAGE); + verifyOneOrMore(itsFacade).exists(BUG_ID_1); } public void testMandatoryMatchingSingleNonExisting() throws IOException { ItsValidateComment ivc = injector.getInstance(ItsValidateComment.class); ReceiveCommand command = mock(ReceiveCommand.class); - RevCommit commit = createCommit("bug#4711"); + RevCommit commit = createCommit(SINGLE_BUG_MESSAGE); CommitReceivedEvent event = newCommitReceivedEvent(command, project, null, commit, null); when(itsConfig.getItsAssociationPolicy()).thenReturn(ItsAssociationPolicy.MANDATORY); - when(issueExtractor.getIssueIds("bug#4711")).thenReturn(new String[] {"4711"}); + when(issueExtractor.getIssueIds(SINGLE_BUG_MESSAGE)).thenReturn(new String[] {BUG_ID_1}); when(itsFacadeFactory.getFacade(projectName)).thenReturn(itsFacade); - when(itsFacade.exists("4711")).thenReturn(false); + when(itsFacade.exists(BUG_ID_1)).thenReturn(false); CommitValidationException thrown = assertThrows(CommitValidationException.class, () -> ivc.onCommitReceived(event)); @@ -225,53 +232,55 @@ .isEqualTo("Non-existing issue-ids referenced in commit message"); verifyOneOrMore(itsConfig).getItsAssociationPolicy(); - verifyOneOrMore(issueExtractor).getIssueIds("bug#4711"); - verifyOneOrMore(itsFacade).exists("4711"); + verifyOneOrMore(issueExtractor).getIssueIds(SINGLE_BUG_MESSAGE); + verifyOneOrMore(itsFacade).exists(BUG_ID_1); } public void testSuggestedMatchingMultiple() throws CommitValidationException, IOException { List<CommitValidationMessage> ret; ItsValidateComment ivc = injector.getInstance(ItsValidateComment.class); ReceiveCommand command = mock(ReceiveCommand.class); - RevCommit commit = createCommit("bug#4711, bug#42"); + RevCommit commit = createCommit(MULTIPLE_BUG_MESSAGE); CommitReceivedEvent event = newCommitReceivedEvent(command, project, null, commit, null); when(itsConfig.getItsAssociationPolicy()).thenReturn(ItsAssociationPolicy.SUGGESTED); - when(issueExtractor.getIssueIds("bug#4711, bug#42")).thenReturn(new String[] {"4711", "42"}); + when(issueExtractor.getIssueIds(MULTIPLE_BUG_MESSAGE)) + .thenReturn(new String[] {BUG_ID_1, BUG_ID_2}); when(itsFacadeFactory.getFacade(projectName)).thenReturn(itsFacade); - when(itsFacade.exists("4711")).thenReturn(true); - when(itsFacade.exists("42")).thenReturn(true); + when(itsFacade.exists(BUG_ID_1)).thenReturn(true); + when(itsFacade.exists(BUG_ID_2)).thenReturn(true); ret = ivc.onCommitReceived(event); assertEmptyList(ret); verifyOneOrMore(itsConfig).getItsAssociationPolicy(); - verifyOneOrMore(itsFacade).exists("4711"); - verifyOneOrMore(itsFacade).exists("42"); + verifyOneOrMore(itsFacade).exists(BUG_ID_1); + verifyOneOrMore(itsFacade).exists(BUG_ID_2); } public void testMandatoryMatchingMultiple() throws CommitValidationException, IOException { List<CommitValidationMessage> ret; ItsValidateComment ivc = injector.getInstance(ItsValidateComment.class); ReceiveCommand command = mock(ReceiveCommand.class); - RevCommit commit = createCommit("bug#4711, bug#42"); + RevCommit commit = createCommit(MULTIPLE_BUG_MESSAGE); CommitReceivedEvent event = newCommitReceivedEvent(command, project, null, commit, null); when(itsConfig.getItsAssociationPolicy()).thenReturn(ItsAssociationPolicy.MANDATORY); - when(issueExtractor.getIssueIds("bug#4711, bug#42")).thenReturn(new String[] {"4711", "42"}); + when(issueExtractor.getIssueIds(MULTIPLE_BUG_MESSAGE)) + .thenReturn(new String[] {BUG_ID_1, BUG_ID_2}); when(itsFacadeFactory.getFacade(projectName)).thenReturn(itsFacade); - when(itsFacade.exists("4711")).thenReturn(true); - when(itsFacade.exists("42")).thenReturn(true); + when(itsFacade.exists(BUG_ID_1)).thenReturn(true); + when(itsFacade.exists(BUG_ID_2)).thenReturn(true); ret = ivc.onCommitReceived(event); assertEmptyList(ret); verifyOneOrMore(itsConfig).getItsAssociationPolicy(); - verifyOneOrMore(issueExtractor).getIssueIds("bug#4711, bug#42"); - verifyOneOrMore(itsFacade).exists("4711"); - verifyOneOrMore(itsFacade).exists("42"); + verifyOneOrMore(issueExtractor).getIssueIds(MULTIPLE_BUG_MESSAGE); + verifyOneOrMore(itsFacade).exists(BUG_ID_1); + verifyOneOrMore(itsFacade).exists(BUG_ID_2); } public void testSuggestedMatchingMultipleOneNonExsting() @@ -279,14 +288,15 @@ List<CommitValidationMessage> ret; ItsValidateComment ivc = injector.getInstance(ItsValidateComment.class); ReceiveCommand command = mock(ReceiveCommand.class); - RevCommit commit = createCommit("bug#4711, bug#42"); + RevCommit commit = createCommit(MULTIPLE_BUG_MESSAGE); CommitReceivedEvent event = newCommitReceivedEvent(command, project, null, commit, null); when(itsConfig.getItsAssociationPolicy()).thenReturn(ItsAssociationPolicy.SUGGESTED); - when(issueExtractor.getIssueIds("bug#4711, bug#42")).thenReturn(new String[] {"4711", "42"}); + when(issueExtractor.getIssueIds(MULTIPLE_BUG_MESSAGE)) + .thenReturn(new String[] {BUG_ID_1, BUG_ID_2}); when(itsFacadeFactory.getFacade(projectName)).thenReturn(itsFacade); - when(itsFacade.exists("4711")).thenReturn(false); - when(itsFacade.exists("42")).thenReturn(true); + when(itsFacade.exists(BUG_ID_1)).thenReturn(false); + when(itsFacade.exists(BUG_ID_2)).thenReturn(true); ret = ivc.onCommitReceived(event); @@ -296,26 +306,28 @@ "Non-existing issue-ids referenced in commit message", CommitValidationMessage.Type.WARNING), new CommitValidationMessage( - "4711 not found in ItsTestName issue tracker", CommitValidationMessage.Type.HINT)) + BUG_ID_1 + " not found in ItsTestName issue tracker", + CommitValidationMessage.Type.HINT)) .inOrder(); verifyOneOrMore(itsConfig).getItsAssociationPolicy(); - verifyOneOrMore(issueExtractor).getIssueIds("bug#4711, bug#42"); - verifyOneOrMore(itsFacade).exists("4711"); - verifyOneOrMore(itsFacade).exists("42"); + verifyOneOrMore(issueExtractor).getIssueIds(MULTIPLE_BUG_MESSAGE); + verifyOneOrMore(itsFacade).exists(BUG_ID_1); + verifyOneOrMore(itsFacade).exists(BUG_ID_2); } public void testMandatoryMatchingMultipleOneNonExsting() throws IOException { ItsValidateComment ivc = injector.getInstance(ItsValidateComment.class); ReceiveCommand command = mock(ReceiveCommand.class); - RevCommit commit = createCommit("bug#4711, bug#42"); + RevCommit commit = createCommit(MULTIPLE_BUG_MESSAGE); CommitReceivedEvent event = newCommitReceivedEvent(command, project, null, commit, null); when(itsConfig.getItsAssociationPolicy()).thenReturn(ItsAssociationPolicy.MANDATORY); - when(issueExtractor.getIssueIds("bug#4711, bug#42")).thenReturn(new String[] {"4711", "42"}); + when(issueExtractor.getIssueIds(MULTIPLE_BUG_MESSAGE)) + .thenReturn(new String[] {BUG_ID_1, BUG_ID_2}); when(itsFacadeFactory.getFacade(projectName)).thenReturn(itsFacade); - when(itsFacade.exists("4711")).thenReturn(false); - when(itsFacade.exists("42")).thenReturn(true); + when(itsFacade.exists(BUG_ID_1)).thenReturn(false); + when(itsFacade.exists(BUG_ID_2)).thenReturn(true); CommitValidationException thrown = assertThrows(CommitValidationException.class, () -> ivc.onCommitReceived(event)); @@ -324,9 +336,9 @@ .isEqualTo("Non-existing issue-ids referenced in commit message"); verifyOneOrMore(itsConfig).getItsAssociationPolicy(); - verifyOneOrMore(issueExtractor).getIssueIds("bug#4711, bug#42"); - verifyOneOrMore(itsFacade).exists("4711"); - verifyOneOrMore(itsFacade).exists("42"); + verifyOneOrMore(issueExtractor).getIssueIds(MULTIPLE_BUG_MESSAGE); + verifyOneOrMore(itsFacade).exists(BUG_ID_1); + verifyOneOrMore(itsFacade).exists(BUG_ID_2); } public void testSuggestedMatchingMultipleSomeNonExsting() @@ -334,14 +346,15 @@ List<CommitValidationMessage> ret; ItsValidateComment ivc = injector.getInstance(ItsValidateComment.class); ReceiveCommand command = mock(ReceiveCommand.class); - RevCommit commit = createCommit("bug#4711, bug#42"); + RevCommit commit = createCommit(MULTIPLE_BUG_MESSAGE); CommitReceivedEvent event = newCommitReceivedEvent(command, project, null, commit, null); when(itsConfig.getItsAssociationPolicy()).thenReturn(ItsAssociationPolicy.SUGGESTED); - when(issueExtractor.getIssueIds("bug#4711, bug#42")).thenReturn(new String[] {"4711", "42"}); + when(issueExtractor.getIssueIds(MULTIPLE_BUG_MESSAGE)) + .thenReturn(new String[] {BUG_ID_1, BUG_ID_2}); when(itsFacadeFactory.getFacade(projectName)).thenReturn(itsFacade); - when(itsFacade.exists("4711")).thenReturn(false); - when(itsFacade.exists("42")).thenReturn(false); + when(itsFacade.exists(BUG_ID_1)).thenReturn(false); + when(itsFacade.exists(BUG_ID_2)).thenReturn(false); ret = ivc.onCommitReceived(event); @@ -351,27 +364,28 @@ "Non-existing issue-ids referenced in commit message", CommitValidationMessage.Type.WARNING), new CommitValidationMessage( - "4711, 42 not found in ItsTestName issue tracker", + BUG_ID_1 + ", " + BUG_ID_2 + " not found in ItsTestName issue tracker", CommitValidationMessage.Type.HINT)) .inOrder(); verifyOneOrMore(itsConfig).getItsAssociationPolicy(); - verifyOneOrMore(issueExtractor).getIssueIds("bug#4711, bug#42"); - verifyOneOrMore(itsFacade).exists("4711"); - verifyOneOrMore(itsFacade).exists("42"); + verifyOneOrMore(issueExtractor).getIssueIds(MULTIPLE_BUG_MESSAGE); + verifyOneOrMore(itsFacade).exists(BUG_ID_1); + verifyOneOrMore(itsFacade).exists(BUG_ID_2); } public void testMandatoryMatchingMultipleSomeNonExsting() throws IOException { ItsValidateComment ivc = injector.getInstance(ItsValidateComment.class); ReceiveCommand command = mock(ReceiveCommand.class); - RevCommit commit = createCommit("bug#4711, bug#42"); + RevCommit commit = createCommit(MULTIPLE_BUG_MESSAGE); CommitReceivedEvent event = newCommitReceivedEvent(command, project, null, commit, null); when(itsConfig.getItsAssociationPolicy()).thenReturn(ItsAssociationPolicy.MANDATORY); - when(issueExtractor.getIssueIds("bug#4711, bug#42")).thenReturn(new String[] {"4711", "42"}); + when(issueExtractor.getIssueIds(MULTIPLE_BUG_MESSAGE)) + .thenReturn(new String[] {BUG_ID_1, BUG_ID_2}); when(itsFacadeFactory.getFacade(projectName)).thenReturn(itsFacade); - when(itsFacade.exists("4711")).thenReturn(false); - when(itsFacade.exists("42")).thenReturn(true); + when(itsFacade.exists(BUG_ID_1)).thenReturn(false); + when(itsFacade.exists(BUG_ID_2)).thenReturn(true); CommitValidationException thrown = assertThrows(CommitValidationException.class, () -> ivc.onCommitReceived(event)); @@ -380,9 +394,9 @@ .isEqualTo("Non-existing issue-ids referenced in commit message"); verifyOneOrMore(itsConfig).getItsAssociationPolicy(); - verifyOneOrMore(issueExtractor).getIssueIds("bug#4711, bug#42"); - verifyOneOrMore(itsFacade).exists("4711"); - verifyOneOrMore(itsFacade).exists("42"); + verifyOneOrMore(issueExtractor).getIssueIds(MULTIPLE_BUG_MESSAGE); + verifyOneOrMore(itsFacade).exists(BUG_ID_1); + verifyOneOrMore(itsFacade).exists(BUG_ID_2); } public void testSuggestedMatchingMultipleIOExceptionIsNonExsting() @@ -390,21 +404,24 @@ List<CommitValidationMessage> ret; ItsValidateComment ivc = injector.getInstance(ItsValidateComment.class); ReceiveCommand command = mock(ReceiveCommand.class); - RevCommit commit = createCommit("bug#4711, bug#42"); + RevCommit commit = createCommit(MULTIPLE_BUG_MESSAGE); CommitReceivedEvent event = newCommitReceivedEvent(command, project, null, commit, null); when(itsConfig.getItsAssociationPolicy()).thenReturn(ItsAssociationPolicy.SUGGESTED); - when(issueExtractor.getIssueIds("bug#4711, bug#42")).thenReturn(new String[] {"4711", "42"}); + when(issueExtractor.getIssueIds(MULTIPLE_BUG_MESSAGE)) + .thenReturn(new String[] {BUG_ID_1, BUG_ID_2}); when(itsFacadeFactory.getFacade(projectName)).thenReturn(itsFacade); - doThrow(new IOException("InjectedEx1")).when(itsFacade).exists("4711"); - when(itsFacade.exists("42")).thenReturn(false); + doThrow(new IOException("InjectedEx1")).when(itsFacade).exists(BUG_ID_1); + when(itsFacade.exists(BUG_ID_2)).thenReturn(false); ret = ivc.onCommitReceived(event); assertThat(ret) .containsExactly( new CommitValidationMessage( - "Failed to check whether or not issue 4711 exists, due to connectivity issue." + "Failed to check whether or not issue " + + BUG_ID_1 + + " exists, due to connectivity issue." + " Commit will be accepted.\n" + "java.io.IOException: InjectedEx1", CommitValidationMessage.Type.OTHER), @@ -412,15 +429,16 @@ "Non-existing issue-ids referenced in commit message", CommitValidationMessage.Type.WARNING), new CommitValidationMessage( - "42 not found in ItsTestName issue tracker", CommitValidationMessage.Type.HINT)) + BUG_ID_2 + " not found in ItsTestName issue tracker", + CommitValidationMessage.Type.HINT)) .inOrder(); - assertLogMessageContains("Failed to check whether or not issue 4711 exists"); + assertLogMessageContains("Failed to check whether or not issue " + BUG_ID_1 + " exists"); verifyOneOrMore(itsConfig).getItsAssociationPolicy(); - verifyOneOrMore(issueExtractor).getIssueIds("bug#4711, bug#42"); - verifyOneOrMore(itsFacade).exists("4711"); - verifyOneOrMore(itsFacade).exists("42"); + verifyOneOrMore(issueExtractor).getIssueIds(MULTIPLE_BUG_MESSAGE); + verifyOneOrMore(itsFacade).exists(BUG_ID_1); + verifyOneOrMore(itsFacade).exists(BUG_ID_2); } public void testMandatoryMatchingSingleIOException() @@ -428,56 +446,59 @@ List<CommitValidationMessage> ret; ItsValidateComment ivc = injector.getInstance(ItsValidateComment.class); ReceiveCommand command = mock(ReceiveCommand.class); - RevCommit commit = createCommit("bug#4711"); + RevCommit commit = createCommit(SINGLE_BUG_MESSAGE); CommitReceivedEvent event = newCommitReceivedEvent(command, project, null, commit, null); when(itsConfig.getItsAssociationPolicy()).thenReturn(ItsAssociationPolicy.MANDATORY); - when(issueExtractor.getIssueIds("bug#4711")).thenReturn(new String[] {"4711"}); + when(issueExtractor.getIssueIds(SINGLE_BUG_MESSAGE)).thenReturn(new String[] {BUG_ID_1}); when(itsFacadeFactory.getFacade(projectName)).thenReturn(itsFacade); - doThrow(new IOException("InjectedEx1")).when(itsFacade).exists("4711"); + doThrow(new IOException("InjectedEx1")).when(itsFacade).exists(BUG_ID_1); ret = ivc.onCommitReceived(event); assertThat(ret) .containsExactly( new CommitValidationMessage( - "Failed to check whether or not issue 4711 exists, due to connectivity issue." + "Failed to check whether or not issue " + + BUG_ID_1 + + " exists, due to connectivity issue." + " Commit will be accepted.\n" + "java.io.IOException: InjectedEx1", CommitValidationMessage.Type.OTHER)) .inOrder(); - assertLogMessageContains("Failed to check whether or not issue 4711 exists"); + assertLogMessageContains(BUG_ID_1); verifyOneOrMore(itsConfig).getItsAssociationPolicy(); - verifyOneOrMore(issueExtractor).getIssueIds("bug#4711"); - verifyOneOrMore(itsFacade).exists("4711"); + verifyOneOrMore(issueExtractor).getIssueIds(SINGLE_BUG_MESSAGE); + verifyOneOrMore(itsFacade).exists(BUG_ID_1); } public void testMandatoryMatchingMultipleIOExceptionIsNonExisting() throws IOException { ItsValidateComment ivc = injector.getInstance(ItsValidateComment.class); ReceiveCommand command = mock(ReceiveCommand.class); - RevCommit commit = createCommit("bug#4711, bug#42"); + RevCommit commit = createCommit(MULTIPLE_BUG_MESSAGE); CommitReceivedEvent event = newCommitReceivedEvent(command, project, null, commit, null); when(itsConfig.getItsAssociationPolicy()).thenReturn(ItsAssociationPolicy.MANDATORY); - when(issueExtractor.getIssueIds("bug#4711, bug#42")).thenReturn(new String[] {"4711", "42"}); + when(issueExtractor.getIssueIds(MULTIPLE_BUG_MESSAGE)) + .thenReturn(new String[] {BUG_ID_1, BUG_ID_2}); when(itsFacadeFactory.getFacade(projectName)).thenReturn(itsFacade); - doThrow(new IOException("InjectedEx1")).when(itsFacade).exists("4711"); - when(itsFacade.exists("42")).thenReturn(false); + doThrow(new IOException("InjectedEx1")).when(itsFacade).exists(BUG_ID_1); + when(itsFacade.exists(BUG_ID_2)).thenReturn(false); try { ivc.onCommitReceived(event); fail("onCommitReceived did not throw any exception"); } catch (CommitValidationException e) { - assertLogMessageContains("Failed to check whether or not issue 4711 exists"); + assertLogMessageContains("Failed to check whether or not issue " + BUG_ID_1 + " exists"); assertEquals(e.getMessage(), "Non-existing issue-ids referenced in commit message"); } verifyOneOrMore(itsConfig).getItsAssociationPolicy(); - verifyOneOrMore(issueExtractor).getIssueIds("bug#4711, bug#42"); - verifyOneOrMore(itsFacade).exists("4711"); - verifyOneOrMore(itsFacade).exists("42"); + verifyOneOrMore(issueExtractor).getIssueIds(MULTIPLE_BUG_MESSAGE); + verifyOneOrMore(itsFacade).exists(BUG_ID_1); + verifyOneOrMore(itsFacade).exists(BUG_ID_2); } public void testMandatoryMatchingMultipleIOExceptionExisting() @@ -485,32 +506,35 @@ List<CommitValidationMessage> ret; ItsValidateComment ivc = injector.getInstance(ItsValidateComment.class); ReceiveCommand command = mock(ReceiveCommand.class); - RevCommit commit = createCommit("bug#4711, bug#42"); + RevCommit commit = createCommit(MULTIPLE_BUG_MESSAGE); CommitReceivedEvent event = newCommitReceivedEvent(command, project, null, commit, null); when(itsConfig.getItsAssociationPolicy()).thenReturn(ItsAssociationPolicy.MANDATORY); - when(issueExtractor.getIssueIds("bug#4711, bug#42")).thenReturn(new String[] {"4711", "42"}); + when(issueExtractor.getIssueIds(MULTIPLE_BUG_MESSAGE)) + .thenReturn(new String[] {BUG_ID_1, BUG_ID_2}); when(itsFacadeFactory.getFacade(projectName)).thenReturn(itsFacade); - doThrow(new IOException("InjectedEx1")).when(itsFacade).exists("4711"); - when(itsFacade.exists("42")).thenReturn(true); + doThrow(new IOException("InjectedEx1")).when(itsFacade).exists(BUG_ID_1); + when(itsFacade.exists(BUG_ID_2)).thenReturn(true); ret = ivc.onCommitReceived(event); assertThat(ret) .containsExactly( new CommitValidationMessage( - "Failed to check whether or not issue 4711 exists, due to connectivity issue." + "Failed to check whether or not issue " + + BUG_ID_1 + + " exists, due to connectivity issue." + " Commit will be accepted.\n" + "java.io.IOException: InjectedEx1", CommitValidationMessage.Type.OTHER)) .inOrder(); - assertLogMessageContains("Failed to check whether or not issue 4711 exists"); + assertLogMessageContains(BUG_ID_1); verifyOneOrMore(itsConfig).getItsAssociationPolicy(); - verifyOneOrMore(issueExtractor).getIssueIds("bug#4711, bug#42"); - verifyOneOrMore(itsFacade).exists("4711"); - verifyOneOrMore(itsFacade).exists("42"); + verifyOneOrMore(issueExtractor).getIssueIds(MULTIPLE_BUG_MESSAGE); + verifyOneOrMore(itsFacade).exists(BUG_ID_1); + verifyOneOrMore(itsFacade).exists(BUG_ID_2); } public void assertEmptyList(List<CommitValidationMessage> list) { @@ -577,6 +601,10 @@ return RevCommit.parse(commitData.getBytes()); } + private String bugEntryInMessage(String bugId) { + return "* " + bugId; + } + private <T> T verifyOneOrMore(T mock) { return verify(mock, atLeastOnce()); }