Skip to content

Commit 7386e2b

Browse files
authored
Merge pull request #23 from API-Flows/validate-criterion-context
Criterion context validation
2 parents 16e2109 + a05d1e3 commit 7386e2b

File tree

2 files changed

+20
-2
lines changed

2 files changed

+20
-2
lines changed

src/main/java/com/apiflows/parser/OpenAPIWorkflowValidator.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -311,6 +311,10 @@ List<String> validateCriterion(Criterion criterion, String stepId) {
311311
errors.add("Step " + stepId + " SuccessCriteria type (" + criterion.getType() + ") is invalid");
312312
}
313313

314+
if (criterion.getType() != null && criterion.getContext() == null) {
315+
errors.add("Step " + stepId + " SuccessCriteria type is specified but context is not provided");
316+
}
317+
314318
return errors;
315319
}
316320

src/test/java/com/apiflows/parser/OpenAPIWorkflowValidatorTest.java

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -297,7 +297,8 @@ void validateCriterion() {
297297

298298
Criterion criterion = new Criterion()
299299
.condition("$statusCode == 200")
300-
.type("simple");
300+
.type("simple")
301+
.context("$response.body");
301302

302303
assertEquals(0, validator.validateCriterion(criterion, stepId).size());
303304
}
@@ -317,7 +318,20 @@ void validateCriterionInvalidType() {
317318

318319
Criterion criterion = new Criterion()
319320
.condition("$statusCode == 200")
320-
.type("dummy");
321+
.type("dummy")
322+
.context("$response.body");
323+
324+
assertEquals(1, validator.validateCriterion(criterion, stepId).size());
325+
}
326+
327+
@Test
328+
void validateCriterionMissingContext() {
329+
String stepId = "step-one";
330+
331+
Criterion criterion = new Criterion()
332+
.condition("$statusCode == 200")
333+
.type("simple")
334+
.context(null);
321335

322336
assertEquals(1, validator.validateCriterion(criterion, stepId).size());
323337
}

0 commit comments

Comments
 (0)