@Test public void should_support_only_issues_with_issue_admin_permission() { when(userSessionMock.hasProjectPermission(UserRole.ISSUE_ADMIN, "foo:bar")).thenReturn(true); assertThat(action.supports(new DefaultIssue().setProjectKey("foo:bar").setResolution(null))) .isTrue(); assertThat(action.supports(new DefaultIssue().setProjectKey("foo:bar2").setResolution(null))) .isFalse(); }
@Test public void should_support_only_unresolved_issues() { when(userSessionMock.hasProjectPermission(UserRole.ISSUE_ADMIN, "foo:bar")).thenReturn(true); assertThat(action.supports(new DefaultIssue().setProjectKey("foo:bar").setResolution(null))) .isTrue(); assertThat( action.supports( new DefaultIssue().setProjectKey("foo:bar").setResolution(Issue.RESOLUTION_FIXED))) .isFalse(); }
@Test public void should_execute() { String severity = "MINOR"; Map<String, Object> properties = newHashMap(); properties.put("severity", severity); DefaultIssue issue = mock(DefaultIssue.class); Action.Context context = mock(Action.Context.class); when(context.issue()).thenReturn(issue); action.execute(properties, context); verify(issueUpdater).setManualSeverity(eq(issue), eq(severity), any(IssueChangeContext.class)); }
@Test public void should_verify_fail_if_parameter_not_found() { Map<String, Object> properties = newHashMap(); properties.put("unknwown", "unknown value"); try { action.verify(properties, Lists.<Issue>newArrayList(), new AnonymousMockUserSession()); fail(); } catch (Exception e) { assertThat(e) .isInstanceOf(IllegalArgumentException.class) .hasMessage("Missing parameter : 'severity'"); } verifyZeroInteractions(issueUpdater); }