@Override public boolean verify(Map<String, Object> properties, Collection<DefaultIssue> issues, UserSession userSession) { verifySeverityParameter(properties); return true; }
@Test public void support_only_unresolved_issues() { IssueDto issueDto = newIssue().setSeverity(MAJOR); DefaultIssue issue = issueDto.toDefaultIssue(); setUserWithBrowseAndAdministerIssuePermission(issueDto); assertThat(action.supports(issue.setResolution(null))).isTrue(); assertThat(action.supports(issue.setResolution(Issue.RESOLUTION_FIXED))).isFalse(); }
@Test public void fail_if_parameter_not_found() { expectedException.expect(IllegalArgumentException.class); expectedException.expectMessage("Missing parameter : 'severity'"); action.verify(ImmutableMap.of("unknwown", MINOR), Lists.newArrayList(), new AnonymousMockUserSession()); }
private void addActions() { actions.add(new org.sonar.server.issue.AssignAction(db.getDbClient(), issueFieldsSetter)); actions.add(new org.sonar.server.issue.SetSeverityAction(issueFieldsSetter, userSession)); actions.add(new org.sonar.server.issue.SetTypeAction(issueFieldsSetter, userSession)); actions.add(new org.sonar.server.issue.TransitionAction(new TransitionService(userSession, issueWorkflow))); actions.add(new org.sonar.server.issue.AddTagsAction(issueFieldsSetter)); actions.add(new org.sonar.server.issue.RemoveTagsAction(issueFieldsSetter)); actions.add(new org.sonar.server.issue.CommentAction(issueFieldsSetter)); }
@Test public void set_severity() { IssueDto issueDto = newIssue().setSeverity(MAJOR); DefaultIssue issue = issueDto.toDefaultIssue(); setUserWithBrowseAndAdministerIssuePermission(issueDto); BulkChangeAction.ActionContext context = new BulkChangeAction.ActionContext(issue, IssueChangeContext.createUser(NOW, userSession.getUuid()), null); action.execute(ImmutableMap.of("severity", MINOR), context); assertThat(issue.severity()).isEqualTo(MINOR); assertThat(issue.isChanged()).isTrue(); assertThat(issue.manualSeverity()).isTrue(); assertThat(issue.updateDate()).isEqualTo(NOW); assertThat(issue.mustSendNotifications()).isTrue(); Map<String, FieldDiffs.Diff> change = issue.currentChange().diffs(); assertThat(change.get("severity").newValue()).isEqualTo(MINOR); assertThat(change.get("severity").oldValue()).isEqualTo(MAJOR); }
public SetSeverityAction(IssueFieldsSetter issueUpdater, UserSession userSession) { super(SET_SEVERITY_KEY); this.issueUpdater = issueUpdater; this.userSession = userSession; super.setConditions(new IsUnResolved(), issue -> isCurrentUserIssueAdmin(issue.projectUuid())); }
@Test public void doesnt_support_security_hotspots() { IssueDto issueDto = newIssue().setSeverity(MAJOR); DefaultIssue issue = issueDto.toDefaultIssue(); setUserWithBrowseAndAdministerIssuePermission(issueDto); assertThat(action.supports(issue.setType(RuleType.CODE_SMELL))).isTrue(); assertThat(action.supports(issue.setType(RuleType.SECURITY_HOTSPOT))).isFalse(); }
@Override public boolean execute(Map<String, Object> properties, Context context) { return issueUpdater.setManualSeverity(context.issue(), verifySeverityParameter(properties), context.issueChangeContext()); }
@Test public void support_only_issues_with_issue_admin_permission() { IssueDto authorizedIssue = newIssue().setSeverity(MAJOR); setUserWithBrowseAndAdministerIssuePermission(authorizedIssue); IssueDto unauthorizedIssue = newIssue().setSeverity(MAJOR); assertThat(action.supports(authorizedIssue.toDefaultIssue().setResolution(null))).isTrue(); assertThat(action.supports(unauthorizedIssue.toDefaultIssue().setResolution(null))).isFalse(); }
@Override public boolean verify(Map<String, Object> properties, Collection<DefaultIssue> issues, UserSession userSession) { verifySeverityParameter(properties); return true; }
@Override public boolean execute(Map<String, Object> properties, Context context) { return issueUpdater.setManualSeverity(context.issue(), verifySeverityParameter(properties), context.issueChangeContext()); }