diff options
author | Julien Lancelot <julien.lancelot@gmail.com> | 2013-06-02 22:33:26 +0200 |
---|---|---|
committer | Julien Lancelot <julien.lancelot@gmail.com> | 2013-06-02 22:33:26 +0200 |
commit | 2e004c7c6d77ffcb2b352754568bcf8a0cb21b03 (patch) | |
tree | 9b492c48db253cfe2ce1aef778608e5aac0c41ec /sonar-server | |
parent | aad61ea0cf5966908e53744f0d964db2ec2aa7c9 (diff) | |
download | sonarqube-2e004c7c6d77ffcb2b352754568bcf8a0cb21b03.tar.gz sonarqube-2e004c7c6d77ffcb2b352754568bcf8a0cb21b03.zip |
SONAR-4315 Improve ActionService
Diffstat (limited to 'sonar-server')
4 files changed, 48 insertions, 16 deletions
diff --git a/sonar-server/src/main/java/org/sonar/server/issue/ActionService.java b/sonar-server/src/main/java/org/sonar/server/issue/ActionService.java index e343f7b0333..1f6bd2e87cc 100644 --- a/sonar-server/src/main/java/org/sonar/server/issue/ActionService.java +++ b/sonar-server/src/main/java/org/sonar/server/issue/ActionService.java @@ -38,10 +38,8 @@ import org.sonar.core.issue.db.IssueStorage; import org.sonar.server.user.UserSession; import javax.annotation.Nullable; - import java.util.Date; import java.util.List; -import java.util.Map; import static com.google.common.collect.Lists.newArrayList; @@ -71,7 +69,7 @@ public class ActionService implements ServerComponent { })); } - public Issue execute(String issueKey, String actionKey, UserSession userSession, Map<String, String> parameters) { + public Issue execute(String issueKey, String actionKey, UserSession userSession) { Preconditions.checkArgument(!Strings.isNullOrEmpty(actionKey), "Missing action"); IssueQueryResult queryResult = loadIssue(issueKey); @@ -89,7 +87,7 @@ public class ActionService implements ServerComponent { } IssueChangeContext changeContext = IssueChangeContext.createUser(new Date(), userSession.login()); - FunctionContext functionContext = new FunctionContext(updater, issue, parameters, changeContext); + FunctionContext functionContext = new FunctionContext(updater, issue, changeContext); for (Function function : action.functions()) { function.execute(functionContext); } @@ -105,14 +103,12 @@ public class ActionService implements ServerComponent { static class FunctionContext implements Function.Context { private final DefaultIssue issue; - private final Map<String, String> parameters; private final IssueUpdater updater; private final IssueChangeContext changeContext; - FunctionContext(IssueUpdater updater, DefaultIssue issue, Map<String, String> parameters, IssueChangeContext changeContext) { + FunctionContext(IssueUpdater updater, DefaultIssue issue, IssueChangeContext changeContext) { this.updater = updater; this.issue = issue; - this.parameters = parameters; this.changeContext = changeContext; } @@ -122,11 +118,6 @@ public class ActionService implements ServerComponent { } @Override - public Map<String, String> parameters() { - return parameters; - } - - @Override public Function.Context setAttribute(String key, @Nullable String value) { updater.setAttribute(issue, key, value, changeContext); return this; diff --git a/sonar-server/src/main/java/org/sonar/server/issue/InternalRubyIssueService.java b/sonar-server/src/main/java/org/sonar/server/issue/InternalRubyIssueService.java index f418fe65cf7..8588fd26eae 100644 --- a/sonar-server/src/main/java/org/sonar/server/issue/InternalRubyIssueService.java +++ b/sonar-server/src/main/java/org/sonar/server/issue/InternalRubyIssueService.java @@ -44,7 +44,6 @@ import org.sonar.server.user.UserSession; import org.sonar.server.util.RubyUtils; import javax.annotation.Nullable; - import java.util.Collection; import java.util.Date; import java.util.List; @@ -306,8 +305,8 @@ public class InternalRubyIssueService implements ServerComponent { return result; } - public Issue executeAction(String issueKey, String actionKey, Map<String, String> parameters) { - return actionService.execute(issueKey, actionKey, UserSession.get(), parameters); + public Issue executeAction(String issueKey, String actionKey) { + return actionService.execute(issueKey, actionKey, UserSession.get()); } public List<Action> listActions(String issueKey){ diff --git a/sonar-server/src/main/webapp/WEB-INF/app/controllers/api/issues_controller.rb b/sonar-server/src/main/webapp/WEB-INF/app/controllers/api/issues_controller.rb index b5b77a18a2a..4cde1b10929 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/controllers/api/issues_controller.rb +++ b/sonar-server/src/main/webapp/WEB-INF/app/controllers/api/issues_controller.rb @@ -254,7 +254,7 @@ class Api::IssuesController < Api::ApiController verify_post_request require_parameters :issue, :actionKey - issue = Internal.issues.executeAction(params[:issue], params[:actionKey], params) + issue = Internal.issues.executeAction(params[:issue], params[:actionKey]) if issue render :json => jsonp({ :issue => Issue.to_hash(issue) diff --git a/sonar-server/src/test/java/org/sonar/server/issue/ActionServiceTest.java b/sonar-server/src/test/java/org/sonar/server/issue/ActionServiceTest.java new file mode 100644 index 00000000000..c5a796232fa --- /dev/null +++ b/sonar-server/src/test/java/org/sonar/server/issue/ActionServiceTest.java @@ -0,0 +1,42 @@ +/* + * SonarQube, open source software quality management tool. + * Copyright (C) 2008-2013 SonarSource + * mailto:contact AT sonarsource DOT com + * + * SonarQube is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * SonarQube is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +package org.sonar.server.issue; + +import org.junit.Before; +import org.sonar.core.issue.IssueUpdater; +import org.sonar.core.issue.db.IssueStorage; + +import static org.mockito.Mockito.mock; + +public class ActionServiceTest { + + private ActionService actionService; + + private DefaultIssueFinder finder = mock(DefaultIssueFinder.class); + private IssueStorage issueStorage = mock(IssueStorage.class); + private IssueUpdater updater = mock(IssueUpdater.class); + private DefaultActions actions = mock(DefaultActions.class); + + @Before + public void before(){ + + } +} |