public List<Transition> outManualTransitions(Issue issue) { return Arrays.stream(outTransitions) .filter(transition -> !transition.automatic()) .filter(transition -> transition.supports(issue)) .collect(Collectors.toList()); }
@CheckForNull public Transition outAutomaticTransition(Issue issue) { final Transition[] result = new Transition[1]; Set<String> keys = new HashSet<>(); Arrays.stream(outTransitions) .filter(Transition::automatic) .filter(transition -> transition.supports(issue)) .peek(transition -> result[0] = transition) .filter(transition -> !keys.add(transition.key())) .findAny() .ifPresent(transition -> { throw new IllegalArgumentException("Several automatic transitions are available for issue: " + issue); }); return result[0]; }
@Test public void should_verify_conditions() { DefaultIssue issue = new DefaultIssue(); Transition transition = Transition.builder("close") .from("OPEN").to("CLOSED") .conditions(condition1, condition2) .build(); when(condition1.matches(issue)).thenReturn(true); when(condition2.matches(issue)).thenReturn(false); assertThat(transition.supports(issue)).isFalse(); when(condition1.matches(issue)).thenReturn(true); when(condition2.matches(issue)).thenReturn(true); assertThat(transition.supports(issue)).isTrue(); }
public List<Transition> outManualTransitions(Issue issue) { return Arrays.stream(outTransitions) .filter(transition -> !transition.automatic()) .filter(transition -> transition.supports(issue)) .collect(Collectors.toList()); }
@CheckForNull public Transition outAutomaticTransition(Issue issue) { final Transition[] result = new Transition[1]; Set<String> keys = new HashSet<>(); Arrays.stream(outTransitions) .filter(Transition::automatic) .filter(transition -> transition.supports(issue)) .peek(transition -> result[0] = transition) .filter(transition -> !keys.add(transition.key())) .findAny() .ifPresent(transition -> { throw new IllegalArgumentException("Several automatic transitions are available for issue: " + issue); }); return result[0]; }