@Before public void setUp() { issueWorkflow.start(); }
@Before public void setUp() throws Exception { workflow.start(); }
@Before public void setUp() throws Exception { workflow.start(); }
@Before public void setUp() throws Exception { workflow.start(); when(context.issue()).thenReturn(issue); when(context.issueChangeContext()).thenReturn(IssueChangeContext.createUser(new Date(), "user_uuid")); }
@Test public void do_not_automatically_reopen_closed_issue_which_have_no_previous_status_in_changelog() { DefaultIssue[] issues = Arrays.stream(SUPPORTED_RESOLUTIONS_FOR_UNCLOSING) .map(IssueWorkflowTest::newClosedIssue) .toArray(DefaultIssue[]::new); Date now = new Date(); workflow.start(); Arrays.stream(issues).forEach(issue -> { workflow.doAutomaticTransition(issue, IssueChangeContext.createScan(now)); assertThat(issue.status()).isEqualTo(STATUS_CLOSED); assertThat(issue.updateDate()).isNull(); }); }
@Before public void setUp() { issueWorkflow.start(); addActions(); }
@Test public void list_statuses() { workflow.start(); // order is important for UI assertThat(workflow.statusKeys()).containsSubsequence(STATUS_OPEN, STATUS_CONFIRMED, STATUS_REOPENED, STATUS_RESOLVED, STATUS_CLOSED); }
@Test public void init_state_machine() { assertThat(workflow.machine()).isNull(); workflow.start(); assertThat(workflow.machine()).isNotNull(); assertThat(workflow.machine().state(STATUS_OPEN)).isNotNull(); assertThat(workflow.machine().state(STATUS_CONFIRMED)).isNotNull(); assertThat(workflow.machine().state(STATUS_CLOSED)).isNotNull(); assertThat(workflow.machine().state(STATUS_REOPENED)).isNotNull(); assertThat(workflow.machine().state(STATUS_RESOLVED)).isNotNull(); workflow.stop(); }
@Test public void fail_if_unknown_status_when_listing_transitions() { workflow.start(); DefaultIssue issue = new DefaultIssue().setStatus("xxx"); try { workflow.outTransitions(issue); fail(); } catch (IllegalArgumentException e) { assertThat(e).hasMessage("Unknown status: xxx"); } }
@Test public void list_no_out_transition_from_status_closed() { workflow.start(); DefaultIssue issue = new DefaultIssue().setStatus(STATUS_CLOSED).setRuleKey(RuleKey.of("java", "R1 ")); List<Transition> transitions = workflow.outTransitions(issue); assertThat(transitions).isEmpty(); }
@Test public void list_out_transitions_from_status_reopen() { workflow.start(); DefaultIssue issue = new DefaultIssue().setStatus(STATUS_REOPENED); List<Transition> transitions = workflow.outTransitions(issue); assertThat(keys(transitions)).containsOnly("confirm", "resolve", "falsepositive", "wontfix"); }
@Test public void flag_as_false_positive() { DefaultIssue issue = new DefaultIssue() .setKey("ABCDE") .setStatus(STATUS_OPEN) .setRuleKey(RuleKey.of("squid", "AvoidCycle")) .setAssigneeUuid("morgan"); workflow.start(); workflow.doManualTransition(issue, DefaultTransitions.FALSE_POSITIVE, IssueChangeContext.createScan(new Date())); assertThat(issue.resolution()).isEqualTo(RESOLUTION_FALSE_POSITIVE); assertThat(issue.status()).isEqualTo(STATUS_RESOLVED); // should remove assignee assertThat(issue.assignee()).isNull(); }
@Test public void wont_fix() { DefaultIssue issue = new DefaultIssue() .setKey("ABCDE") .setStatus(STATUS_OPEN) .setRuleKey(RuleKey.of("squid", "AvoidCycle")) .setAssigneeUuid("morgan"); workflow.start(); workflow.doManualTransition(issue, DefaultTransitions.WONT_FIX, IssueChangeContext.createScan(new Date())); assertThat(issue.resolution()).isEqualTo(RESOLUTION_WONT_FIX); assertThat(issue.status()).isEqualTo(STATUS_RESOLVED); // should remove assignee assertThat(issue.assignee()).isNull(); }
@Test public void list_out_transitions_from_status_open() { workflow.start(); DefaultIssue issue = new DefaultIssue().setStatus(STATUS_OPEN); List<Transition> transitions = workflow.outTransitions(issue); assertThat(keys(transitions)).containsOnly("confirm", "falsepositive", "resolve", "wontfix"); }
@Test public void list_out_transitions_from_status_confirmed() { workflow.start(); DefaultIssue issue = new DefaultIssue().setStatus(STATUS_CONFIRMED); List<Transition> transitions = workflow.outTransitions(issue); assertThat(keys(transitions)).containsOnly("unconfirm", "falsepositive", "resolve", "wontfix"); }
@Test public void list_out_transitions_from_status_resolved() { workflow.start(); DefaultIssue issue = new DefaultIssue().setStatus(STATUS_RESOLVED); List<Transition> transitions = workflow.outTransitions(issue); assertThat(keys(transitions)).containsOnly("reopen"); }
@Test public void close_open_dead_issue() { workflow.start(); DefaultIssue issue = new DefaultIssue() .setKey("ABCDE") .setResolution(null) .setStatus(STATUS_OPEN) .setNew(false) .setBeingClosed(true); Date now = new Date(); workflow.doAutomaticTransition(issue, IssueChangeContext.createScan(now)); assertThat(issue.resolution()).isEqualTo(RESOLUTION_FIXED); assertThat(issue.status()).isEqualTo(STATUS_CLOSED); assertThat(issue.closeDate()).isNotNull(); assertThat(issue.updateDate()).isEqualTo(DateUtils.truncate(now, Calendar.SECOND)); }
@Test public void close_reopened_dead_issue() { workflow.start(); DefaultIssue issue = new DefaultIssue() .setKey("ABCDE") .setResolution(null) .setStatus(STATUS_REOPENED) .setNew(false) .setBeingClosed(true); Date now = new Date(); workflow.doAutomaticTransition(issue, IssueChangeContext.createScan(now)); assertThat(issue.resolution()).isEqualTo(RESOLUTION_FIXED); assertThat(issue.status()).isEqualTo(STATUS_CLOSED); assertThat(issue.closeDate()).isNotNull(); assertThat(issue.updateDate()).isEqualTo(DateUtils.truncate(now, Calendar.SECOND)); }
@Test public void close_confirmed_dead_issue() { workflow.start(); DefaultIssue issue = new DefaultIssue() .setKey("ABCDE") .setResolution(null) .setStatus(STATUS_CONFIRMED) .setNew(false) .setBeingClosed(true); Date now = new Date(); workflow.doAutomaticTransition(issue, IssueChangeContext.createScan(now)); assertThat(issue.resolution()).isEqualTo(RESOLUTION_FIXED); assertThat(issue.status()).isEqualTo(STATUS_CLOSED); assertThat(issue.closeDate()).isNotNull(); assertThat(issue.updateDate()).isEqualTo(DateUtils.truncate(now, Calendar.SECOND)); }
@Test public void fail_if_unknown_status_on_automatic_trans() { workflow.start(); DefaultIssue issue = new DefaultIssue() .setKey("ABCDE") .setResolution(RESOLUTION_FIXED) .setStatus("xxx") .setNew(false) .setBeingClosed(true); try { workflow.doAutomaticTransition(issue, IssueChangeContext.createScan(new Date())); fail(); } catch (IllegalStateException e) { assertThat(e).hasMessage("Unknown status: xxx [issue=ABCDE]"); } }