diff options
author | Julien Lancelot <julien.lancelot@gmail.com> | 2013-06-07 10:27:00 +0200 |
---|---|---|
committer | Julien Lancelot <julien.lancelot@gmail.com> | 2013-06-07 10:27:00 +0200 |
commit | bc33f4aee5e1c43e3a1784b97d464208c590943a (patch) | |
tree | ff0da01a00df7ff94cc07739b45adc2a33e3f7f1 /sonar-core/src | |
parent | 19170ca15132f97a5c8f9c32943cd2a7b6af074b (diff) | |
download | sonarqube-bc33f4aee5e1c43e3a1784b97d464208c590943a.tar.gz sonarqube-bc33f4aee5e1c43e3a1784b97d464208c590943a.zip |
SONAR-3755 Closed issues should be reopened only if manual issues
Diffstat (limited to 'sonar-core/src')
-rw-r--r-- | sonar-core/src/main/java/org/sonar/core/issue/workflow/IssueWorkflow.java | 1 | ||||
-rw-r--r-- | sonar-core/src/test/java/org/sonar/core/issue/workflow/IssueWorkflowTest.java | 25 |
2 files changed, 26 insertions, 0 deletions
diff --git a/sonar-core/src/main/java/org/sonar/core/issue/workflow/IssueWorkflow.java b/sonar-core/src/main/java/org/sonar/core/issue/workflow/IssueWorkflow.java index acc539876da..c532611afea 100644 --- a/sonar-core/src/main/java/org/sonar/core/issue/workflow/IssueWorkflow.java +++ b/sonar-core/src/main/java/org/sonar/core/issue/workflow/IssueWorkflow.java @@ -78,6 +78,7 @@ public class IssueWorkflow implements BatchComponent, ServerComponent, Startable .functions(new SetResolution(null)) .build()) .transition(Transition.builder(DefaultTransitions.REOPEN) + .conditions(new IsManual(true)) .from(Issue.STATUS_CLOSED).to(Issue.STATUS_REOPENED) .functions(new SetResolution(null), new SetCloseDate(false)) .build()) diff --git a/sonar-core/src/test/java/org/sonar/core/issue/workflow/IssueWorkflowTest.java b/sonar-core/src/test/java/org/sonar/core/issue/workflow/IssueWorkflowTest.java index 5d21f7767ef..da014a9c532 100644 --- a/sonar-core/src/test/java/org/sonar/core/issue/workflow/IssueWorkflowTest.java +++ b/sonar-core/src/test/java/org/sonar/core/issue/workflow/IssueWorkflowTest.java @@ -105,6 +105,31 @@ public class IssueWorkflowTest { } @Test + public void should_list_no_out_transition_from_status_closed() throws Exception { + workflow.start(); + + DefaultIssue issue = new DefaultIssue().setStatus(Issue.STATUS_CLOSED); + List<Transition> transitions = workflow.outTransitions(issue); + assertThat(transitions).isEmpty(); + } + + @Test + public void should_list_out_transitions_from_status_closed_on_manual_issue() throws Exception { + workflow.start(); + + // Manual issue because of reporter + DefaultIssue issue = new DefaultIssue() + .setKey("ABCDE") + .setStatus(Issue.STATUS_CLOSED) + .setRuleKey(RuleKey.of("manual", "Performance")) + .setReporter("simon"); + + List<Transition> transitions = workflow.outTransitions(issue); + assertThat(transitions).hasSize(1); + assertThat(keys(transitions)).containsOnly("reopen"); + } + + @Test public void should_fail_if_unknown_status_when_listing_transitions() throws Exception { workflow.start(); |