Move getting the issue pattern into the ItsConfig class "Getting the issue pattern" is a config thing. Now that we have a ItsConfig class, it should live there. Hence, we move it there. Change-Id: Ida13ce787b42d092c5a6bd3bec0507f7a4222749
diff --git a/src/main/java/com/googlesource/gerrit/plugins/hooks/its/ItsConfig.java b/src/main/java/com/googlesource/gerrit/plugins/hooks/its/ItsConfig.java index 89bccf4..e3fc124 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/hooks/its/ItsConfig.java +++ b/src/main/java/com/googlesource/gerrit/plugins/hooks/its/ItsConfig.java
@@ -17,6 +17,7 @@ import com.google.gerrit.common.data.RefConfigSection; import com.google.gerrit.extensions.annotations.PluginName; import com.google.gerrit.reviewdb.client.Project; +import com.google.gerrit.server.config.GerritServerConfig; import com.google.gerrit.server.config.PluginConfig; import com.google.gerrit.server.config.PluginConfigFactory; import com.google.gerrit.server.events.ChangeAbandonedEvent; @@ -31,24 +32,33 @@ import com.google.gerrit.server.project.RefPatternMatcher; import com.google.inject.Inject; +import java.util.regex.Pattern; + +import org.eclipse.jgit.lib.Config; + import org.slf4j.Logger; import org.slf4j.LoggerFactory; + public class ItsConfig { private static final Logger log = LoggerFactory.getLogger(ItsConfig.class); private final String pluginName; private final ProjectCache projectCache; private final PluginConfigFactory pluginCfgFactory; + private final Config gerritConfig; @Inject public ItsConfig(@PluginName String pluginName, ProjectCache projectCache, - PluginConfigFactory pluginCfgFactory) { + PluginConfigFactory pluginCfgFactory, @GerritServerConfig Config gerritConfig) { this.pluginName = pluginName; this.projectCache = projectCache; this.pluginCfgFactory = pluginCfgFactory; + this.gerritConfig = gerritConfig; } + // Plugin enablement -------------------------------------------------------- + public boolean isEnabled(Event event) { if (event instanceof PatchSetCreatedEvent) { PatchSetCreatedEvent e = (PatchSetCreatedEvent) event; @@ -114,4 +124,20 @@ private boolean match(String refName, String refPattern) { return RefPatternMatcher.getMatcher(refPattern).match(refName, null); } + + // Issue association -------------------------------------------------------- + + /** + * Gets the regular expression used to identify issue ids. + * @return the regular expression, or {@code null}, if there is no pattern + * to match issue ids. + */ + public Pattern getIssuePattern() { + Pattern ret = null; + String match = gerritConfig.getString("commentLink", pluginName, "match"); + if (match != null) { + ret = Pattern.compile(match); + } + return ret; + } }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/hooks/util/IssueExtractor.java b/src/main/java/com/googlesource/gerrit/plugins/hooks/util/IssueExtractor.java index 1d57c2a..c4a6864 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/hooks/util/IssueExtractor.java +++ b/src/main/java/com/googlesource/gerrit/plugins/hooks/util/IssueExtractor.java
@@ -2,15 +2,14 @@ import com.google.common.collect.Maps; import com.google.common.collect.Sets; -import com.google.gerrit.extensions.annotations.PluginName; import com.google.gerrit.reviewdb.client.PatchSet; import com.google.gerrit.reviewdb.server.ReviewDb; -import com.google.gerrit.server.config.GerritServerConfig; import com.google.gwtorm.server.OrmException; import com.google.inject.Inject; +import com.googlesource.gerrit.plugins.hooks.its.ItsConfig; + import org.apache.commons.lang.StringUtils; -import org.eclipse.jgit.lib.Config; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -23,19 +22,17 @@ private static final Logger log = LoggerFactory.getLogger( IssueExtractor.class); - private final Config gerritConfig; - private final String pluginName; private final CommitMessageFetcher commitMessageFetcher; private final ReviewDb db; + private final ItsConfig itsConfig; @Inject - IssueExtractor(@GerritServerConfig Config gerritConfig, - @PluginName String pluginName, CommitMessageFetcher commitMessageFetcher, + IssueExtractor(ItsConfig itsConfig, + CommitMessageFetcher commitMessageFetcher, ReviewDb db) { - this.gerritConfig = gerritConfig; - this.pluginName = pluginName; this.commitMessageFetcher = commitMessageFetcher; this.db = db; + this.itsConfig = itsConfig; } /** @@ -45,7 +42,7 @@ * @return array of {@link String}. Each String being a found issue id. */ public String[] getIssueIds(String haystack) { - Pattern pattern = getPattern(); + Pattern pattern = itsConfig.getIssuePattern(); if (pattern == null) return new String[] {}; log.debug("Matching '" + haystack + "' against " + pattern.pattern()); @@ -62,20 +59,6 @@ } /** - * Gets the regular expression used to identify issue ids. - * @return the regular expression, or {@code null}, if there is no pattern - * to match issue ids. - */ - public Pattern getPattern() { - Pattern ret = null; - String match = gerritConfig.getString("commentLink", pluginName, "match"); - if (match != null) { - ret = Pattern.compile(match); - } - return ret; - } - - /** * Helper funcion for {@link #getIssueIds(String, String)}. * <p> * Adds a text's issues for a given occurrence to the map returned by
diff --git a/src/main/java/com/googlesource/gerrit/plugins/hooks/validation/ItsValidateComment.java b/src/main/java/com/googlesource/gerrit/plugins/hooks/validation/ItsValidateComment.java index a396ed9..8dd24c2 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/hooks/validation/ItsValidateComment.java +++ b/src/main/java/com/googlesource/gerrit/plugins/hooks/validation/ItsValidateComment.java
@@ -118,7 +118,7 @@ sb.append("Hint: insert one or more issue-id anywhere in the "); sb.append("commit message.\n"); sb.append(" Issue-ids are strings matching "); - sb.append(issueExtractor.getPattern().pattern()); + sb.append(itsConfig.getIssuePattern().pattern()); sb.append("\n"); sb.append(" and are pointing to existing tickets on "); sb.append(pluginName);
diff --git a/src/test/java/com/googlesource/gerrit/plugins/hooks/its/ItsConfigTest.java b/src/test/java/com/googlesource/gerrit/plugins/hooks/its/ItsConfigTest.java index ea3671c..ebf36b2 100644 --- a/src/test/java/com/googlesource/gerrit/plugins/hooks/its/ItsConfigTest.java +++ b/src/test/java/com/googlesource/gerrit/plugins/hooks/its/ItsConfigTest.java
@@ -19,6 +19,7 @@ import com.google.gerrit.extensions.annotations.PluginName; import com.google.gerrit.reviewdb.client.Project; import com.google.gerrit.server.config.FactoryModule; +import com.google.gerrit.server.config.GerritServerConfig; import com.google.gerrit.server.config.PluginConfig; import com.google.gerrit.server.config.PluginConfigFactory; import com.google.gerrit.server.data.ChangeAttribute; @@ -30,6 +31,8 @@ import com.googlesource.gerrit.plugins.hooks.testutil.LoggingMockingTestCase; +import org.eclipse.jgit.lib.Config; + import java.util.Arrays; public class ItsConfigTest extends LoggingMockingTestCase { @@ -37,6 +40,7 @@ private ProjectCache projectCache; private PluginConfigFactory pluginConfigFactory; + private Config serverConfig; public void setupIsEnabled(String enabled, String parentEnabled, String[] branches) { @@ -403,6 +407,30 @@ assertFalse(itsConfig.isEnabled(event)); } + public void testPatternNullMatch() { + ItsConfig itsConfig = createItsConfig(); + + expect(serverConfig.getString("commentLink", "ItsTestName", "match")) + .andReturn(null).atLeastOnce(); + + replayMocks(); + + assertNull("Pattern for null match is not null", + itsConfig.getIssuePattern()); + } + + public void testPattern() { + ItsConfig itsConfig = createItsConfig(); + + expect(serverConfig.getString("commentLink", "ItsTestName", "match")) + .andReturn("TestPattern").atLeastOnce(); + + replayMocks(); + + assertEquals("Expected and generated pattern are not equal", + "TestPattern", itsConfig.getIssuePattern().pattern()); + } + private ItsConfig createItsConfig() { return injector.getInstance(ItsConfig.class); } @@ -424,6 +452,10 @@ bind(String.class).annotatedWith(PluginName.class) .toInstance("ItsTestName"); + + serverConfig = createMock(Config.class); + bind(Config.class).annotatedWith(GerritServerConfig.class) + .toInstance(serverConfig); } } }
diff --git a/src/test/java/com/googlesource/gerrit/plugins/hooks/util/IssueExtractorTest.java b/src/test/java/com/googlesource/gerrit/plugins/hooks/util/IssueExtractorTest.java index a18a1ef..a6c42c7 100644 --- a/src/test/java/com/googlesource/gerrit/plugins/hooks/util/IssueExtractorTest.java +++ b/src/test/java/com/googlesource/gerrit/plugins/hooks/util/IssueExtractorTest.java
@@ -17,21 +17,19 @@ import com.google.common.collect.Maps; import com.google.common.collect.Sets; -import com.google.gerrit.extensions.annotations.PluginName; import com.google.gerrit.reviewdb.client.Change; import com.google.gerrit.reviewdb.client.PatchSet; import com.google.gerrit.reviewdb.client.RevId; import com.google.gerrit.reviewdb.server.PatchSetAccess; import com.google.gerrit.reviewdb.server.ReviewDb; import com.google.gerrit.server.config.FactoryModule; -import com.google.gerrit.server.config.GerritServerConfig; import com.google.gwtorm.server.OrmException; import com.google.inject.Guice; import com.google.inject.Injector; +import com.googlesource.gerrit.plugins.hooks.its.ItsConfig; import com.googlesource.gerrit.plugins.hooks.testutil.LoggingMockingTestCase; -import org.eclipse.jgit.lib.Config; import org.junit.runner.RunWith; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4.PowerMockRunner; @@ -40,44 +38,21 @@ import java.util.List; import java.util.Map; import java.util.Set; +import java.util.regex.Pattern; @RunWith(PowerMockRunner.class) @PrepareForTest({PatchSet.class,RevId.class}) public class IssueExtractorTest extends LoggingMockingTestCase { private Injector injector; - private Config serverConfig; + private ItsConfig itsConfig; private CommitMessageFetcher commitMessageFetcher; private ReviewDb db; - public void testPatternNullMatch() { - IssueExtractor issueExtractor = injector.getInstance(IssueExtractor.class); - - expect(serverConfig.getString("commentLink", "ItsTestName", "match")) - .andReturn(null).atLeastOnce(); - - replayMocks(); - - assertNull("Pattern for null match is not null", - issueExtractor.getPattern()); - } - - public void testPattern() { - IssueExtractor issueExtractor = injector.getInstance(IssueExtractor.class); - - expect(serverConfig.getString("commentLink", "ItsTestName", "match")) - .andReturn("TestPattern").atLeastOnce(); - - replayMocks(); - - assertEquals("Expected and generated pattern are not equal", - "TestPattern", issueExtractor.getPattern().pattern()); - } - public void testIssueIdsNullPattern() { IssueExtractor issueExtractor = injector.getInstance(IssueExtractor.class); - expect(serverConfig.getString("commentLink", "ItsTestName", "match")) - .andReturn(null).atLeastOnce(); + expect(itsConfig.getIssuePattern()).andReturn(null) + .atLeastOnce(); replayMocks(); @@ -87,8 +62,9 @@ public void testIssueIdsNoMatch() { IssueExtractor issueExtractor = injector.getInstance(IssueExtractor.class); - expect(serverConfig.getString("commentLink", "ItsTestName", "match")) - .andReturn("bug#(\\d+)").atLeastOnce(); + + expect(itsConfig.getIssuePattern()).andReturn(Pattern.compile("bug#(\\d+)")) + .atLeastOnce(); replayMocks(); @@ -100,8 +76,9 @@ public void testIssueIdsFullMatch() { IssueExtractor issueExtractor = injector.getInstance(IssueExtractor.class); - expect(serverConfig.getString("commentLink", "ItsTestName", "match")) - .andReturn("bug#(\\d+)").atLeastOnce(); + + expect(itsConfig.getIssuePattern()).andReturn(Pattern.compile("bug#(\\d+)")) + .atLeastOnce(); replayMocks(); @@ -114,8 +91,9 @@ public void testIssueIdsMatch() { IssueExtractor issueExtractor = injector.getInstance(IssueExtractor.class); - expect(serverConfig.getString("commentLink", "ItsTestName", "match")) - .andReturn("bug#(\\d+)").atLeastOnce(); + + expect(itsConfig.getIssuePattern()).andReturn(Pattern.compile("bug#(\\d+)")) + .atLeastOnce(); replayMocks(); @@ -128,8 +106,9 @@ public void testIssueIdsGrouplessMatch() { IssueExtractor issueExtractor = injector.getInstance(IssueExtractor.class); - expect(serverConfig.getString("commentLink", "ItsTestName", "match")) - .andReturn("bug#\\d+").atLeastOnce(); + + expect(itsConfig.getIssuePattern()).andReturn(Pattern.compile("bug#\\d+")) + .atLeastOnce(); replayMocks(); @@ -142,8 +121,9 @@ public void testIssueIdsMultiGroupMatch() { IssueExtractor issueExtractor = injector.getInstance(IssueExtractor.class); - expect(serverConfig.getString("commentLink", "ItsTestName", "match")) - .andReturn("bug#(\\d)(\\d+)").atLeastOnce(); + + expect(itsConfig.getIssuePattern()) + .andReturn(Pattern.compile("bug#(\\d)(\\d+)")).atLeastOnce(); replayMocks(); @@ -156,8 +136,9 @@ public void testIssueIdsMulipleMatches() { IssueExtractor issueExtractor = injector.getInstance(IssueExtractor.class); - expect(serverConfig.getString("commentLink", "ItsTestName", "match")) - .andReturn("bug#(\\d+)").atLeastOnce(); + + expect(itsConfig.getIssuePattern()).andReturn(Pattern.compile("bug#(\\d+)")) + .atLeastOnce(); replayMocks(); @@ -173,8 +154,9 @@ public void testIssueIdsMulipleMatchesWithDuplicates() { IssueExtractor issueExtractor = injector.getInstance(IssueExtractor.class); - expect(serverConfig.getString("commentLink", "ItsTestName", "match")) - .andReturn("bug#(\\d+)").atLeastOnce(); + + expect(itsConfig.getIssuePattern()).andReturn(Pattern.compile("bug#(\\d+)")) + .atLeastOnce(); replayMocks(); @@ -190,8 +172,8 @@ } public void testIssueIdsCommitSingleIssue() { - expect(serverConfig.getString("commentLink", "ItsTestName", "match")) - .andReturn("bug#(\\d+)").atLeastOnce(); + expect(itsConfig.getIssuePattern()).andReturn(Pattern.compile("bug#(\\d+)")) + .atLeastOnce(); expect(commitMessageFetcher.fetchGuarded("testProject", "1234567891123456789212345678931234567894")).andReturn( @@ -217,8 +199,8 @@ } public void testIssueIdsCommitMultipleIssues() { - expect(serverConfig.getString("commentLink", "ItsTestName", "match")) - .andReturn("bug#(\\d+)").atLeastOnce(); + expect(itsConfig.getIssuePattern()).andReturn(Pattern.compile("bug#(\\d+)")) + .atLeastOnce(); expect(commitMessageFetcher.fetchGuarded("testProject", "1234567891123456789212345678931234567894")).andReturn( @@ -245,8 +227,8 @@ } public void testIssueIdsCommitMultipleIssuesMultipleTimes() { - expect(serverConfig.getString("commentLink", "ItsTestName", "match")) - .andReturn("bug#(\\d+)").atLeastOnce(); + expect(itsConfig.getIssuePattern()).andReturn(Pattern.compile("bug#(\\d+)")) + .atLeastOnce(); expect(commitMessageFetcher.fetchGuarded("testProject", "1234567891123456789212345678931234567894")).andReturn( @@ -273,8 +255,8 @@ } public void testIssueIdsCommitSingleIssueBody() { - expect(serverConfig.getString("commentLink", "ItsTestName", "match")) - .andReturn("bug#(\\d+)").atLeastOnce(); + expect(itsConfig.getIssuePattern()).andReturn(Pattern.compile("bug#(\\d+)")) + .atLeastOnce(); expect(commitMessageFetcher.fetchGuarded("testProject", "1234567891123456789212345678931234567894")).andReturn( @@ -303,8 +285,8 @@ } public void testIssueIdsCommitSingleIssueFooter() { - expect(serverConfig.getString("commentLink", "ItsTestName", "match")) - .andReturn("bug#(\\d+)").atLeastOnce(); + expect(itsConfig.getIssuePattern()).andReturn(Pattern.compile("bug#(\\d+)")) + .atLeastOnce(); expect(commitMessageFetcher.fetchGuarded("testProject", "1234567891123456789212345678931234567894")).andReturn( @@ -334,8 +316,8 @@ } public void testIssueIdsCommitMultipleIssuesFooter() { - expect(serverConfig.getString("commentLink", "ItsTestName", "match")) - .andReturn("bug#(\\d+)").atLeastOnce(); + expect(itsConfig.getIssuePattern()).andReturn(Pattern.compile("bug#(\\d+)")) + .atLeastOnce(); expect(commitMessageFetcher.fetchGuarded("testProject", "1234567891123456789212345678931234567894")).andReturn( @@ -374,8 +356,8 @@ } public void testIssueIdsCommitDifferentParts() { - expect(serverConfig.getString("commentLink", "ItsTestName", "match")) - .andReturn("bug#(\\d+)").atLeastOnce(); + expect(itsConfig.getIssuePattern()).andReturn(Pattern.compile("bug#(\\d+)")) + .atLeastOnce(); expect(commitMessageFetcher.fetchGuarded("testProject", "1234567891123456789212345678931234567894")).andReturn( @@ -408,8 +390,8 @@ } public void testIssueIdsCommitDifferentPartsEmptySubject() { - expect(serverConfig.getString("commentLink", "ItsTestName", "match")) - .andReturn("bug#(\\d+)").atLeastOnce(); + expect(itsConfig.getIssuePattern()).andReturn(Pattern.compile("bug#(\\d+)")) + .atLeastOnce(); expect(commitMessageFetcher.fetchGuarded("testProject", "1234567891123456789212345678931234567894")).andReturn( @@ -441,8 +423,8 @@ } public void testIssueIdsCommitDifferentPartsLinePastFooter() { - expect(serverConfig.getString("commentLink", "ItsTestName", "match")) - .andReturn("bug#(\\d+)").atLeastOnce(); + expect(itsConfig.getIssuePattern()).andReturn(Pattern.compile("bug#(\\d+)")) + .atLeastOnce(); expect(commitMessageFetcher.fetchGuarded("testProject", "1234567891123456789212345678931234567894")).andReturn( @@ -475,8 +457,8 @@ } public void testIssueIdsCommitDifferentPartsLinesPastFooter() { - expect(serverConfig.getString("commentLink", "ItsTestName", "match")) - .andReturn("bug#(\\d+)").atLeastOnce(); + expect(itsConfig.getIssuePattern()).andReturn(Pattern.compile("bug#(\\d+)")) + .atLeastOnce(); expect(commitMessageFetcher.fetchGuarded("testProject", "1234567891123456789212345678931234567894")).andReturn( @@ -510,8 +492,8 @@ } public void testIssueIdsCommitDifferentPartsNoFooter() { - expect(serverConfig.getString("commentLink", "ItsTestName", "match")) - .andReturn("bug#(\\d+)").atLeastOnce(); + expect(itsConfig.getIssuePattern()).andReturn(Pattern.compile("bug#(\\d+)")) + .atLeastOnce(); expect(commitMessageFetcher.fetchGuarded("testProject", "1234567891123456789212345678931234567894")).andReturn( @@ -537,8 +519,8 @@ } public void testIssueIdsCommitDifferentPartsNoFooterTrailingLine() { - expect(serverConfig.getString("commentLink", "ItsTestName", "match")) - .andReturn("bug#(\\d+)").atLeastOnce(); + expect(itsConfig.getIssuePattern()).andReturn(Pattern.compile("bug#(\\d+)")) + .atLeastOnce(); expect(commitMessageFetcher.fetchGuarded("testProject", "1234567891123456789212345678931234567894")).andReturn( @@ -564,8 +546,8 @@ } public void testIssueIdsCommitDifferentPartsNoFooterTrailingLines() { - expect(serverConfig.getString("commentLink", "ItsTestName", "match")) - .andReturn("bug#(\\d+)").atLeastOnce(); + expect(itsConfig.getIssuePattern()).andReturn(Pattern.compile("bug#(\\d+)")) + .atLeastOnce(); expect(commitMessageFetcher.fetchGuarded("testProject", "1234567891123456789212345678931234567894")).andReturn( @@ -592,8 +574,8 @@ } public void testIssueIdsCommitEmpty() { - expect(serverConfig.getString("commentLink", "ItsTestName", "match")) - .andReturn("bug#(\\d+)").atLeastOnce(); + expect(itsConfig.getIssuePattern()).andReturn(Pattern.compile("bug#(\\d+)")) + .atLeastOnce(); expect(commitMessageFetcher.fetchGuarded("testProject", "1234567891123456789212345678931234567894")).andReturn(""); @@ -613,8 +595,8 @@ } public void testIssueIdsCommitBlankLine() { - expect(serverConfig.getString("commentLink", "ItsTestName", "match")) - .andReturn("bug#(\\d+)").atLeastOnce(); + expect(itsConfig.getIssuePattern()).andReturn(Pattern.compile("bug#(\\d+)")) + .atLeastOnce(); expect(commitMessageFetcher.fetchGuarded("testProject", "1234567891123456789212345678931234567894")).andReturn("\n"); @@ -632,8 +614,8 @@ } public void testIssueIdsCommitBlankLines() { - expect(serverConfig.getString("commentLink", "ItsTestName", "match")) - .andReturn("bug#(\\d+)").atLeastOnce(); + expect(itsConfig.getIssuePattern()).andReturn(Pattern.compile("bug#(\\d+)")) + .atLeastOnce(); expect(commitMessageFetcher.fetchGuarded("testProject", "1234567891123456789212345678931234567894")).andReturn("\n\n"); @@ -651,8 +633,8 @@ } public void testIssueIdsCommitMoreBlankLines() { - expect(serverConfig.getString("commentLink", "ItsTestName", "match")) - .andReturn("bug#(\\d+)").atLeastOnce(); + expect(itsConfig.getIssuePattern()).andReturn(Pattern.compile("bug#(\\d+)")) + .atLeastOnce(); expect(commitMessageFetcher.fetchGuarded("testProject", "1234567891123456789212345678931234567894")).andReturn("\n\n\n"); @@ -670,8 +652,8 @@ } public void testIssueIdsCommitMixed() { - expect(serverConfig.getString("commentLink", "ItsTestName", "match")) - .andReturn("bug#(\\d+)").atLeastOnce(); + expect(itsConfig.getIssuePattern()).andReturn(Pattern.compile("bug#(\\d+)")) + .atLeastOnce(); expect(commitMessageFetcher.fetchGuarded("testProject", "1234567891123456789212345678931234567894")).andReturn( @@ -710,8 +692,8 @@ } public void testIssueIdsCommitWAddedEmptyFirst() { - expect(serverConfig.getString("commentLink", "ItsTestName", "match")) - .andReturn("bug#(\\d+)").atLeastOnce(); + expect(itsConfig.getIssuePattern()).andReturn(Pattern.compile("bug#(\\d+)")) + .atLeastOnce(); expect(commitMessageFetcher.fetchGuarded("testProject", "1234567891123456789212345678931234567894")).andReturn(""); @@ -732,8 +714,8 @@ } public void testIssueIdsCommitWAddedSingleSubjectIssueFirst() { - expect(serverConfig.getString("commentLink", "ItsTestName", "match")) - .andReturn("bug#(\\d+)").atLeastOnce(); + expect(itsConfig.getIssuePattern()).andReturn(Pattern.compile("bug#(\\d+)")) + .atLeastOnce(); Change.Id changeId = createMock(Change.Id.class); @@ -768,8 +750,8 @@ public void testIssueIdsCommitWAddedSingleSubjectIssueSecondEmpty() throws OrmException { - expect(serverConfig.getString("commentLink", "ItsTestName", "match")) - .andReturn("bug#(\\d+)").atLeastOnce(); + expect(itsConfig.getIssuePattern()).andReturn(Pattern.compile("bug#(\\d+)")) + .atLeastOnce(); Change.Id changeId = createMock(Change.Id.class); @@ -830,8 +812,8 @@ public void testIssueIdsCommitWAddedSingleSubjectIssueSecondSame() throws OrmException { - expect(serverConfig.getString("commentLink", "ItsTestName", "match")) - .andReturn("bug#(\\d+)").atLeastOnce(); + expect(itsConfig.getIssuePattern()).andReturn(Pattern.compile("bug#(\\d+)")) + .atLeastOnce(); Change.Id changeId = createMock(Change.Id.class); @@ -891,8 +873,8 @@ public void testIssueIdsCommitWAddedSingleSubjectIssueSecondBody() throws OrmException { - expect(serverConfig.getString("commentLink", "ItsTestName", "match")) - .andReturn("bug#(\\d+)").atLeastOnce(); + expect(itsConfig.getIssuePattern()).andReturn(Pattern.compile("bug#(\\d+)")) + .atLeastOnce(); Change.Id changeId = createMock(Change.Id.class); @@ -953,8 +935,8 @@ public void testIssueIdsCommitWAddedSingleSubjectIssueSecondFooter() throws OrmException { - expect(serverConfig.getString("commentLink", "ItsTestName", "match")) - .andReturn("bug#(\\d+)").atLeastOnce(); + expect(itsConfig.getIssuePattern()).andReturn(Pattern.compile("bug#(\\d+)")) + .atLeastOnce(); Change.Id changeId = createMock(Change.Id.class); @@ -1017,8 +999,8 @@ public void testIssueIdsCommitWAddedSubjectFooter() throws OrmException { - expect(serverConfig.getString("commentLink", "ItsTestName", "match")) - .andReturn("bug#(\\d+)").atLeastOnce(); + expect(itsConfig.getIssuePattern()).andReturn(Pattern.compile("bug#(\\d+)")) + .atLeastOnce(); Change.Id changeId = createMock(Change.Id.class); @@ -1085,8 +1067,8 @@ public void testIssueIdsCommitWAddedMultiple() throws OrmException { - expect(serverConfig.getString("commentLink", "ItsTestName", "match")) - .andReturn("bug#(\\d+)").atLeastOnce(); + expect(itsConfig.getIssuePattern()).andReturn(Pattern.compile("bug#(\\d+)")) + .atLeastOnce(); Change.Id changeId = createMock(Change.Id.class); @@ -1164,12 +1146,8 @@ private class TestModule extends FactoryModule { @Override protected void configure() { - bind(String.class).annotatedWith(PluginName.class) - .toInstance("ItsTestName"); - - serverConfig = createMock(Config.class); - bind(Config.class).annotatedWith(GerritServerConfig.class) - .toInstance(serverConfig); + itsConfig = createMock(ItsConfig.class); + bind(ItsConfig.class).toInstance(itsConfig); commitMessageFetcher = createMock(CommitMessageFetcher.class); bind(CommitMessageFetcher.class).toInstance(commitMessageFetcher);
diff --git a/src/test/java/com/googlesource/gerrit/plugins/hooks/validation/ItsValidateCommentTest.java b/src/test/java/com/googlesource/gerrit/plugins/hooks/validation/ItsValidateCommentTest.java index 9fc9d79..2358ced 100644 --- a/src/test/java/com/googlesource/gerrit/plugins/hooks/validation/ItsValidateCommentTest.java +++ b/src/test/java/com/googlesource/gerrit/plugins/hooks/validation/ItsValidateCommentTest.java
@@ -48,6 +48,8 @@ private Config serverConfig; private IssueExtractor issueExtractor; private ItsFacade itsFacade; + private ItsConfig itsConfig; + private Project project = new Project(new Project.NameKey("myProject")); public void testOptional() throws CommitValidationException { @@ -468,7 +470,9 @@ } private void setupCommonMocks() { - expect(issueExtractor.getPattern()).andReturn(Pattern.compile("bug#(\\d+)")) + expect(itsConfig.getIssuePattern()) + .andReturn(Pattern.compile("bug#(\\d+)")).anyTimes(); + expect(itsConfig.isEnabled("myProject", null)).andReturn(true) .anyTimes(); } @@ -497,12 +501,8 @@ itsFacade = createMock(ItsFacade.class); bind(ItsFacade.class).toInstance(itsFacade); - bind(ItsConfig.class).toInstance(new ItsConfig(null, null, null) { - @Override - public boolean isEnabled(String project, String branch) { - return true; - } - }); + itsConfig = createMock(ItsConfig.class); + bind(ItsConfig.class).toInstance(itsConfig); } } }
diff --git a/src/test/java/com/googlesource/gerrit/plugins/hooks/workflow/ActionControllerTest.java b/src/test/java/com/googlesource/gerrit/plugins/hooks/workflow/ActionControllerTest.java index eea768c..df122d5 100644 --- a/src/test/java/com/googlesource/gerrit/plugins/hooks/workflow/ActionControllerTest.java +++ b/src/test/java/com/googlesource/gerrit/plugins/hooks/workflow/ActionControllerTest.java
@@ -13,6 +13,7 @@ // limitations under the License. package com.googlesource.gerrit.plugins.hooks.workflow; +import static org.easymock.EasyMock.anyObject; import static org.easymock.EasyMock.expect; import com.google.common.collect.Lists; @@ -37,6 +38,7 @@ private PropertyExtractor propertyExtractor; private RuleBase ruleBase; private ActionExecutor actionExecutor; + private ItsConfig itsConfig; public void testNoPropertySets() { ActionController actionController = createActionController(); @@ -182,10 +184,17 @@ return injector.getInstance(ActionController.class); } + private void setupCommonMocks() { + expect(itsConfig.isEnabled(anyObject(Event.class))).andReturn(true) + .anyTimes(); + } + @Override public void setUp() throws Exception { super.setUp(); injector = Guice.createInjector(new TestModule()); + + setupCommonMocks(); } private class TestModule extends FactoryModule { @@ -200,12 +209,8 @@ actionExecutor = createMock(ActionExecutor.class); bind(ActionExecutor.class).toInstance(actionExecutor); - bind(ItsConfig.class).toInstance(new ItsConfig(null, null, null) { - @Override - public boolean isEnabled(Event event) { - return true; - } - }); + itsConfig = createMock(ItsConfig.class); + bind(ItsConfig.class).toInstance(itsConfig); } } } \ No newline at end of file