@Test @SuppressWarnings("unchecked") public void should_execute() { Map<String, Object> properties = newHashMap(); properties.put("tags", "tag2,tag3"); DefaultIssue issue = mock(DefaultIssue.class); when(issue.tags()).thenReturn(ImmutableSet.of("tag1", "tag3")); Action.Context context = mock(Action.Context.class, Mockito.RETURNS_DEEP_STUBS); when(context.issue()).thenReturn(issue); action.execute(properties, context); verify(issue).setTags(ImmutableSet.of("tag1")); }
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 should_fail_if_tag_is_not_valid() { throwable.expect(IllegalArgumentException.class); throwable.expectMessage("Tag 'th ag' is invalid. Rule tags accept only the characters: a-z, 0-9, '+', '-', '#', '.'"); Map<String, Object> properties = newHashMap(); properties.put("tags", "th ag"); DefaultIssue issue = mock(DefaultIssue.class); when(issue.tags()).thenReturn(ImmutableSet.of("tag1", "tag3")); Action.Context context = mock(Action.Context.class); when(context.issue()).thenReturn(issue); action.execute(properties, context); } }