|
25 | 25 | import io.serverlessworkflow.api.interfaces.State; |
26 | 26 | import io.serverlessworkflow.api.states.EventState; |
27 | 27 | import io.serverlessworkflow.api.states.OperationState; |
| 28 | +import io.serverlessworkflow.api.states.SubflowState; |
28 | 29 | import io.serverlessworkflow.api.states.SwitchState; |
29 | 30 | import io.serverlessworkflow.api.switchconditions.DataCondition; |
30 | 31 | import io.serverlessworkflow.api.test.utils.WorkflowTestUtils; |
@@ -55,7 +56,8 @@ public class MarkupToWorkflowTest { |
55 | 56 | "/examples/periodicinboxcheck.json", "/examples/periodicinboxcheck.yml", |
56 | 57 | "/examples/vetappointmentservice.json", "/examples/vetappointmentservice.yml", |
57 | 58 | "/examples/eventbasedtransition.json", "/examples/eventbasedtransition.yml", |
58 | | - "/examples/roomreadings.json", "/examples/roomreadings.yml" |
| 59 | + "/examples/roomreadings.json", "/examples/roomreadings.yml", |
| 60 | + "/examples/checkcarvitals.json", "/examples/checkcarvitals.yml" |
59 | 61 | }) |
60 | 62 | public void testSpecExamplesParsing(String workflowLocation) { |
61 | 63 | Workflow workflow = Workflow.fromSource(WorkflowTestUtils.readWorkflowFile(workflowLocation)); |
@@ -256,4 +258,29 @@ public void testKeepActiveExecTimeout(String workflowLocation) { |
256 | 258 | assertEquals("PT1H", execTimeout.getInterval()); |
257 | 259 | assertEquals("GenerateReport", execTimeout.getRunBefore()); |
258 | 260 | } |
| 261 | + |
| 262 | + @ParameterizedTest |
| 263 | + @ValueSource(strings = {"/features/checkcarvitals.json", "/features/checkcarvitals.yml"}) |
| 264 | + public void testSubflowStateRepeat(String workflowLocation) { |
| 265 | + Workflow workflow = Workflow.fromSource(WorkflowTestUtils.readWorkflowFile(workflowLocation)); |
| 266 | + |
| 267 | + assertNotNull(workflow); |
| 268 | + assertNotNull(workflow.getId()); |
| 269 | + assertNotNull(workflow.getName()); |
| 270 | + assertNotNull(workflow.getStates()); |
| 271 | + |
| 272 | + assertNotNull(workflow.getStates()); |
| 273 | + assertTrue(workflow.getStates().size() == 2); |
| 274 | + |
| 275 | + State state = workflow.getStates().get(1); |
| 276 | + assertTrue(state instanceof SubflowState); |
| 277 | + |
| 278 | + SubflowState subflowState = (SubflowState) workflow.getStates().get(1); |
| 279 | + assertNotNull(subflowState.getRepeat()); |
| 280 | + assertEquals(10, subflowState.getRepeat().getMax()); |
| 281 | + assertTrue(subflowState.getRepeat().isContinueOnError()); |
| 282 | + assertNotNull(subflowState.getRepeat().getStopOnEvents()); |
| 283 | + assertEquals(1, subflowState.getRepeat().getStopOnEvents().size()); |
| 284 | + assertEquals("CarTurnedOffEvent", subflowState.getRepeat().getStopOnEvents().get(0)); |
| 285 | + } |
259 | 286 | } |
0 commit comments