37
37
import io .serverlessworkflow .api .workflow .Retries ;
38
38
import io .serverlessworkflow .validation .WorkflowValidatorImpl ;
39
39
import java .util .Arrays ;
40
- import java .util .Collection ;
40
+ import java .util .List ;
41
41
import org .junit .jupiter .api .Assertions ;
42
42
import org .junit .jupiter .api .Test ;
43
43
@@ -46,7 +46,7 @@ public class WorkflowValidationTest {
46
46
@ Test
47
47
public void testIncompleteJsonWithSchemaValidation () {
48
48
WorkflowValidator workflowValidator = new WorkflowValidatorImpl ();
49
- Collection <ValidationError > validationErrors =
49
+ List <ValidationError > validationErrors =
50
50
workflowValidator .setSource ("{\n " + " \" id\" : \" abc\" \n " + "}" ).validate ();
51
51
Assertions .assertNotNull (validationErrors );
52
52
Assertions .assertEquals (3 , validationErrors .size ());
@@ -55,7 +55,7 @@ public void testIncompleteJsonWithSchemaValidation() {
55
55
@ Test
56
56
public void testIncompleteYamlWithSchemaValidation () {
57
57
WorkflowValidator workflowValidator = new WorkflowValidatorImpl ();
58
- Collection <ValidationError > validationErrors =
58
+ List <ValidationError > validationErrors =
59
59
workflowValidator .setSource ("---\n " + "key: abc\n " ).validate ();
60
60
Assertions .assertNotNull (validationErrors );
61
61
Assertions .assertEquals (3 , validationErrors .size ());
@@ -77,22 +77,18 @@ public void testFromIncompleteWorkflow() {
77
77
.withDuration ("PT1M" )));
78
78
79
79
WorkflowValidator workflowValidator = new WorkflowValidatorImpl ();
80
- Collection <ValidationError > validationErrors =
81
- workflowValidator .setWorkflow (workflow ).validate ();
80
+ List <ValidationError > validationErrors = workflowValidator .setWorkflow (workflow ).validate ();
82
81
Assertions .assertNotNull (validationErrors );
83
82
Assertions .assertEquals (1 , validationErrors .size ());
84
- Assertions .assertTrue (
85
- validationErrors .stream ()
86
- .anyMatch (
87
- v ->
88
- v .getMessage ()
89
- .equals ("No state name found that matches the workflow start definition" )));
83
+ Assertions .assertEquals (
84
+ "No state name found that matches the workflow start definition" ,
85
+ validationErrors .get (0 ).getMessage ());
90
86
}
91
87
92
88
@ Test
93
89
public void testWorkflowMissingStates () {
94
90
WorkflowValidator workflowValidator = new WorkflowValidatorImpl ();
95
- Collection <ValidationError > validationErrors =
91
+ List <ValidationError > validationErrors =
96
92
workflowValidator
97
93
.setSource (
98
94
"{\n "
@@ -106,14 +102,13 @@ public void testWorkflowMissingStates() {
106
102
Assertions .assertNotNull (validationErrors );
107
103
Assertions .assertEquals (1 , validationErrors .size ());
108
104
109
- Assertions .assertTrue (
110
- validationErrors .stream ().anyMatch (v -> v .getMessage ().equals ("No states found" )));
105
+ Assertions .assertEquals ("No states found" , validationErrors .get (0 ).getMessage ());
111
106
}
112
107
113
108
@ Test
114
109
public void testWorkflowMissingStatesIdAndKey () {
115
110
WorkflowValidator workflowValidator = new WorkflowValidatorImpl ();
116
- Collection <ValidationError > validationErrors =
111
+ List <ValidationError > validationErrors =
117
112
workflowValidator
118
113
.setSource (
119
114
"{\n "
@@ -125,64 +120,16 @@ public void testWorkflowMissingStatesIdAndKey() {
125
120
.validate ();
126
121
Assertions .assertNotNull (validationErrors );
127
122
Assertions .assertEquals (2 , validationErrors .size ());
128
- Assertions .assertEquals (
129
- validationErrors .stream ()
130
- .filter (
131
- v ->
132
- v .getMessage ().equals ("No states found" )
133
- || v .getMessage ().equals ("Workflow id or key should not be empty" ))
134
- .count (),
135
- 2 );
136
- }
137
-
138
- @ Test
139
- void testFunctionCall () {
140
- Workflow workflow =
141
- new Workflow ()
142
- .withId ("test-workflow" )
143
- .withVersion ("1.0" )
144
- .withStart (new Start ().withStateName ("start" ))
145
- .withFunctions (
146
- new Functions (
147
- Arrays .asList (new FunctionDefinition ("expression" ).withType (Type .EXPRESSION ))))
148
- .withStates (
149
- Arrays .asList (
150
- new OperationState ()
151
- .withName ("start" )
152
- .withType (OPERATION )
153
- .withActions (
154
- Arrays .asList (
155
- new Action ().withFunctionRef (new FunctionRef ("expression" ))))
156
- .withEnd (new End ())));
157
- Assertions .assertTrue (new WorkflowValidatorImpl ().setWorkflow (workflow ).validate ().isEmpty ());
158
- }
159
123
160
- @ Test
161
- void testEventCall () {
162
- Workflow workflow =
163
- new Workflow ()
164
- .withId ("test-workflow" )
165
- .withVersion ("1.0" )
166
- .withStart (new Start ().withStateName ("start" ))
167
- .withEvents (new Events (Arrays .asList (new EventDefinition ().withName ("event" ))))
168
- .withRetries (new Retries (Arrays .asList (new RetryDefinition ("start" , "PT1S" ))))
169
- .withStates (
170
- Arrays .asList (
171
- new OperationState ()
172
- .withName ("start" )
173
- .withType (OPERATION )
174
- .withActions (
175
- Arrays .asList (
176
- new Action ()
177
- .withEventRef (new EventRef ().withTriggerEventRef ("event" ))))
178
- .withEnd (new End ())));
179
- Assertions .assertTrue (new WorkflowValidatorImpl ().setWorkflow (workflow ).validate ().isEmpty ());
124
+ Assertions .assertEquals (
125
+ "Workflow id or key should not be empty" , validationErrors .get (0 ).getMessage ());
126
+ Assertions .assertEquals ("No states found" , validationErrors .get (1 ).getMessage ());
180
127
}
181
128
182
129
@ Test
183
130
public void testOperationStateNoFunctionRef () {
184
131
WorkflowValidator workflowValidator = new WorkflowValidatorImpl ();
185
- Collection <ValidationError > validationErrors =
132
+ List <ValidationError > validationErrors =
186
133
workflowValidator
187
134
.setSource (
188
135
"{\n "
@@ -225,6 +172,10 @@ public void testOperationStateNoFunctionRef() {
225
172
226
173
Assertions .assertNotNull (validationErrors );
227
174
Assertions .assertEquals (1 , validationErrors .size ());
175
+
176
+ Assertions .assertEquals (
177
+ "Operation State action functionRef does not reference an existing workflow function definition" ,
178
+ validationErrors .get (0 ).getMessage ());
228
179
}
229
180
230
181
@ Test
@@ -242,16 +193,15 @@ public void testValidateWorkflowForOptionalStartStateAndWorkflowName() {
242
193
.withDuration ("PT1M" )));
243
194
244
195
WorkflowValidator workflowValidator = new WorkflowValidatorImpl ();
245
- Collection <ValidationError > validationErrors =
246
- workflowValidator .setWorkflow (workflow ).validate ();
196
+ List <ValidationError > validationErrors = workflowValidator .setWorkflow (workflow ).validate ();
247
197
Assertions .assertNotNull (validationErrors );
248
198
Assertions .assertEquals (0 , validationErrors .size ());
249
199
}
250
200
251
201
@ Test
252
202
public void testValidateWorkflowForOptionalIterationParam () {
253
203
WorkflowValidator workflowValidator = new WorkflowValidatorImpl ();
254
- Collection <ValidationError > validationErrors =
204
+ List <ValidationError > validationErrors =
255
205
workflowValidator
256
206
.setSource (
257
207
"{\n "
@@ -292,13 +242,15 @@ public void testValidateWorkflowForOptionalIterationParam() {
292
242
.validate ();
293
243
294
244
Assertions .assertNotNull (validationErrors );
295
- Assertions .assertEquals (1 , validationErrors .size ());
245
+ Assertions .assertEquals (
246
+ 1 ,
247
+ validationErrors .size ()); // validation error raised for functionref not for iterationParam
296
248
}
297
249
298
250
@ Test
299
251
public void testMissingFunctionRefForCallbackState () {
300
252
WorkflowValidator workflowValidator = new WorkflowValidatorImpl ();
301
- Collection <ValidationError > validationErrors =
253
+ List <ValidationError > validationErrors =
302
254
workflowValidator
303
255
.setSource (
304
256
"{\n "
@@ -332,16 +284,54 @@ public void testMissingFunctionRefForCallbackState() {
332
284
Assertions .assertNotNull (validationErrors );
333
285
Assertions .assertEquals (2 , validationErrors .size ());
334
286
Assertions .assertEquals (
335
- validationErrors .stream ()
336
- .filter (
337
- v ->
338
- v .getMessage ()
339
- .equals (
340
- "CallbackState event ref does not reference a defined workflow event definition" )
341
- || v .getMessage ()
342
- .equals (
343
- "CallbackState action function ref does not reference a defined workflow function definition" ))
344
- .count (),
345
- 2 );
287
+ "CallbackState event ref does not reference a defined workflow event definition" ,
288
+ validationErrors .get (0 ).getMessage ());
289
+ Assertions .assertEquals (
290
+ "CallbackState action function ref does not reference a defined workflow function definition" ,
291
+ validationErrors .get (1 ).getMessage ());
292
+ }
293
+
294
+ @ Test
295
+ void testFunctionCall () {
296
+ Workflow workflow =
297
+ new Workflow ()
298
+ .withId ("test-workflow" )
299
+ .withVersion ("1.0" )
300
+ .withStart (new Start ().withStateName ("start" ))
301
+ .withFunctions (
302
+ new Functions (
303
+ Arrays .asList (new FunctionDefinition ("expression" ).withType (Type .EXPRESSION ))))
304
+ .withStates (
305
+ Arrays .asList (
306
+ new OperationState ()
307
+ .withName ("start" )
308
+ .withType (OPERATION )
309
+ .withActions (
310
+ Arrays .asList (
311
+ new Action ().withFunctionRef (new FunctionRef ("expression" ))))
312
+ .withEnd (new End ())));
313
+ Assertions .assertTrue (new WorkflowValidatorImpl ().setWorkflow (workflow ).validate ().isEmpty ());
314
+ }
315
+
316
+ @ Test
317
+ void testEventCall () {
318
+ Workflow workflow =
319
+ new Workflow ()
320
+ .withId ("test-workflow" )
321
+ .withVersion ("1.0" )
322
+ .withStart (new Start ().withStateName ("start" ))
323
+ .withEvents (new Events (Arrays .asList (new EventDefinition ().withName ("event" ))))
324
+ .withRetries (new Retries (Arrays .asList (new RetryDefinition ("start" , "PT1S" ))))
325
+ .withStates (
326
+ Arrays .asList (
327
+ new OperationState ()
328
+ .withName ("start" )
329
+ .withType (OPERATION )
330
+ .withActions (
331
+ Arrays .asList (
332
+ new Action ()
333
+ .withEventRef (new EventRef ().withTriggerEventRef ("event" ))))
334
+ .withEnd (new End ())));
335
+ Assertions .assertTrue (new WorkflowValidatorImpl ().setWorkflow (workflow ).validate ().isEmpty ());
346
336
}
347
337
}
0 commit comments