.from(Issue.STATUS_OPEN).to(Issue.STATUS_CONFIRMED) .conditions(IsNotHotspotNorManualVulnerability.INSTANCE) .functions(new SetResolution(null)) .build()) .transition(Transition.builder(DefaultTransitions.CONFIRM) .from(Issue.STATUS_REOPENED).to(Issue.STATUS_CONFIRMED) .conditions(IsNotHotspotNorManualVulnerability.INSTANCE) .functions(new SetResolution(null)) .build()) .transition(Transition.builder(DefaultTransitions.UNCONFIRM) .from(Issue.STATUS_CONFIRMED).to(Issue.STATUS_REOPENED) .conditions(IsNotHotspotNorManualVulnerability.INSTANCE) .functions(new SetResolution(null)) .build()) .transition(Transition.builder(DefaultTransitions.RESOLVE) .from(Issue.STATUS_OPEN).to(Issue.STATUS_RESOLVED) .conditions(IsNotHotspotNorManualVulnerability.INSTANCE) .functions(new SetResolution(Issue.RESOLUTION_FIXED)) .build()) .transition(Transition.builder(DefaultTransitions.RESOLVE) .from(Issue.STATUS_REOPENED).to(Issue.STATUS_RESOLVED) .conditions(IsNotHotspotNorManualVulnerability.INSTANCE) .functions(new SetResolution(Issue.RESOLUTION_FIXED)) .build()) .transition(Transition.builder(DefaultTransitions.RESOLVE) .from(Issue.STATUS_CONFIRMED).to(Issue.STATUS_RESOLVED) .conditions(IsNotHotspotNorManualVulnerability.INSTANCE) .functions(new SetResolution(Issue.RESOLUTION_FIXED)) .build())
@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"); } }
.from(Issue.STATUS_RESOLVED).to(Issue.STATUS_OPEN) .conditions(new HasType(RuleType.SECURITY_HOTSPOT), new HasResolution(Issue.RESOLUTION_WONT_FIX)) .functions(new SetType(RuleType.VULNERABILITY), new SetResolution(null)) .requiredProjectPermission(UserRole.SECURITYHOTSPOT_ADMIN) .build()) .from(Issue.STATUS_OPEN).to(Issue.STATUS_RESOLVED) .conditions(IsManualVulnerability.INSTANCE) .functions(new SetType(RuleType.SECURITY_HOTSPOT), new SetResolution(Issue.RESOLUTION_FIXED)) .build()) .transition(Transition.builder(DefaultTransitions.REQUEST_REVIEW) .from(Issue.STATUS_REOPENED).to(Issue.STATUS_RESOLVED) .conditions(IsManualVulnerability.INSTANCE) .functions(new SetType(RuleType.SECURITY_HOTSPOT), new SetResolution(Issue.RESOLUTION_FIXED)) .build()) .transition(Transition.builder(DefaultTransitions.REJECT) .from(Issue.STATUS_RESOLVED).to(Issue.STATUS_REOPENED) .conditions(new HasType(RuleType.SECURITY_HOTSPOT), new HasResolution(Issue.RESOLUTION_FIXED)) .functions(new SetType(RuleType.VULNERABILITY), new SetResolution(null)) .requiredProjectPermission(UserRole.SECURITYHOTSPOT_ADMIN) .build()) .from(Issue.STATUS_RESOLVED).to(Issue.STATUS_RESOLVED) .conditions(new HasType(RuleType.SECURITY_HOTSPOT), new HasResolution(Issue.RESOLUTION_FIXED)) .functions(new SetResolution(Issue.RESOLUTION_WONT_FIX)) .requiredProjectPermission(UserRole.SECURITYHOTSPOT_ADMIN) .build()) .from(Issue.STATUS_OPEN).to(Issue.STATUS_RESOLVED)
.from(Issue.STATUS_RESOLVED).to(Issue.STATUS_REOPENED) .conditions(new NotCondition(IsBeingClosed.INSTANCE), new HasResolution(Issue.RESOLUTION_FIXED), IsNotHotspotNorManualVulnerability.INSTANCE) .functions(new SetResolution(null), UnsetCloseDate.INSTANCE) .automatic() .build())
private static void buildManualTransitions(StateMachine.Builder builder) { builder.transition(Transition.builder(DefaultTransitions.CONFIRM) .from(Issue.STATUS_OPEN).to(Issue.STATUS_CONFIRMED) .functions(new SetResolution(null)) .build()) .transition(Transition.builder(DefaultTransitions.CONFIRM) .from(Issue.STATUS_REOPENED).to(Issue.STATUS_CONFIRMED) .functions(new SetResolution(null)) .build()) .transition(Transition.builder(DefaultTransitions.UNCONFIRM) .from(Issue.STATUS_CONFIRMED).to(Issue.STATUS_REOPENED) .functions(new SetResolution(null)) .build()) .transition(Transition.builder(DefaultTransitions.RESOLVE) .from(Issue.STATUS_OPEN).to(Issue.STATUS_RESOLVED) .functions(new SetResolution(Issue.RESOLUTION_FIXED)) .build()) .transition(Transition.builder(DefaultTransitions.RESOLVE) .from(Issue.STATUS_REOPENED).to(Issue.STATUS_RESOLVED) .functions(new SetResolution(Issue.RESOLUTION_FIXED)) .build()) .transition(Transition.builder(DefaultTransitions.RESOLVE) .from(Issue.STATUS_CONFIRMED).to(Issue.STATUS_RESOLVED) .functions(new SetResolution(Issue.RESOLUTION_FIXED)) .build()) .transition(Transition.builder(DefaultTransitions.REOPEN) .from(Issue.STATUS_RESOLVED).to(Issue.STATUS_REOPENED) .functions(new SetResolution(null)) .build())
.from(Issue.STATUS_RESOLVED).to(Issue.STATUS_REOPENED) .conditions(new NotCondition(IsBeingClosed.INSTANCE), new HasResolution(Issue.RESOLUTION_FIXED)) .functions(new SetResolution(null), new SetCloseDate(false)) .automatic() .build());