|
18 | 18 | import static io.serverlessworkflow.api.states.DefaultState.Type.OPERATION;
|
19 | 19 | import static io.serverlessworkflow.api.states.DefaultState.Type.SLEEP;
|
20 | 20 |
|
| 21 | +import com.fasterxml.jackson.databind.ObjectMapper; |
21 | 22 | import io.serverlessworkflow.api.Workflow;
|
22 | 23 | import io.serverlessworkflow.api.actions.Action;
|
23 | 24 | import io.serverlessworkflow.api.end.End;
|
| 25 | +import io.serverlessworkflow.api.error.ErrorDefinition; |
24 | 26 | import io.serverlessworkflow.api.events.EventDefinition;
|
25 | 27 | import io.serverlessworkflow.api.events.EventRef;
|
26 | 28 | import io.serverlessworkflow.api.functions.FunctionDefinition;
|
|
30 | 32 | import io.serverlessworkflow.api.retry.RetryDefinition;
|
31 | 33 | import io.serverlessworkflow.api.start.Start;
|
32 | 34 | import io.serverlessworkflow.api.states.ForEachState;
|
| 35 | +import io.serverlessworkflow.api.states.InjectState; |
33 | 36 | import io.serverlessworkflow.api.states.OperationState;
|
34 | 37 | import io.serverlessworkflow.api.states.SleepState;
|
35 | 38 | import io.serverlessworkflow.api.validation.ValidationError;
|
| 39 | +import io.serverlessworkflow.api.workflow.Errors; |
36 | 40 | import io.serverlessworkflow.api.workflow.Events;
|
37 | 41 | import io.serverlessworkflow.api.workflow.Functions;
|
38 | 42 | import io.serverlessworkflow.api.workflow.Retries;
|
@@ -367,4 +371,27 @@ void testActionDefForEach() {
|
367 | 371 | "State action 'callFn' functionRef does not reference an existing workflow function definition",
|
368 | 372 | validationErrors.get(0).getMessage());
|
369 | 373 | }
|
| 374 | + |
| 375 | + /** |
| 376 | + * @see <a href="https://github.com/serverlessworkflow/sdk-java/issues/232">WorkflowValidator |
| 377 | + * validate Wrokflow.tojson(workflow) failed</a> |
| 378 | + */ |
| 379 | + @Test |
| 380 | + void testErrorsArrayParsing() { |
| 381 | + final Workflow workflow = |
| 382 | + new Workflow() |
| 383 | + .withId("test-workflow") |
| 384 | + .withName("test-workflow") |
| 385 | + .withVersion("1.0") |
| 386 | + .withStart(new Start().withStateName("testingErrors")) |
| 387 | + .withErrors(new Errors(Arrays.asList(new ErrorDefinition()))) |
| 388 | + .withStates( |
| 389 | + Arrays.asList( |
| 390 | + new InjectState() |
| 391 | + .withName("testingErrors") |
| 392 | + .withData(new ObjectMapper().createObjectNode().put("name", "Skywalker")) |
| 393 | + .withEnd(new End()))); |
| 394 | + Assertions.assertTrue( |
| 395 | + new WorkflowValidatorImpl().setSource(Workflow.toJson(workflow)).isValid()); |
| 396 | + } |
370 | 397 | }
|
0 commit comments