@Override public void execute(Context context) { DefaultIssue defaultIssue = (DefaultIssue) context.issue(); String previousResolution = defaultIssue.changes().stream() // exclude current change (if any) .filter(change -> change != defaultIssue.currentChange()) .filter(change -> change.creationDate() != null) .sorted(Comparator.comparing(FieldDiffs::creationDate).reversed()) .map(this::parse) .filter(Objects::nonNull) .filter(StatusAndResolutionDiffs::hasResolution) .findFirst() .map(t -> t.newStatusClosed ? t.oldResolution : t.newResolution) .orElse(null); context.setResolution(previousResolution); }
@Test public void execute() { SetResolution function = new SetResolution("FIXED"); Function.Context context = mock(Function.Context.class); function.execute(context); verify(context, times(1)).setResolution("FIXED"); } }
@Test public void should_resolve_as_fixed() { Issue issue = new DefaultIssue().setBeingClosed(true).setOnDisabledRule(false); when(context.issue()).thenReturn(issue); INSTANCE.execute(context); verify(context, times(1)).setResolution(Issue.RESOLUTION_FIXED); }
@Override public void execute(Context context) { DefaultIssue issue = (DefaultIssue) context.issue(); if (issue.isOnDisabledRule()) { context.setResolution(Issue.RESOLUTION_REMOVED); } else { context.setResolution(Issue.RESOLUTION_FIXED); } // closed issues are not "tracked" -> the line number does not evolve anymore // when code changes. That's misleading for end-users, so line number // is unset. context.setLine(null); } }
@Override public void execute(Context context) { context.setResolution(resolution); } }
@Override public void execute(Context context) { DefaultIssue issue = (DefaultIssue) context.issue(); if (issue.isOnDisabledRule()) { context.setResolution(Issue.RESOLUTION_REMOVED); } else { context.setResolution(Issue.RESOLUTION_FIXED); } // closed issues are not "tracked" -> the line number does not evolve anymore // when code changes. That's misleading for end-users, so line number // is unset. context.unsetLine(); } }
@Override public void execute(Context context) { context.setResolution(resolution); } }
@Test public void should_resolve_as_removed_when_rule_is_disabled() { Issue issue = new DefaultIssue().setBeingClosed(true).setOnDisabledRule(true); when(context.issue()).thenReturn(issue); INSTANCE.execute(context); verify(context, times(1)).setResolution(Issue.RESOLUTION_REMOVED); }