Skip to content

Commit bdfa3f0

Browse files
authored
Merge pull request #30 from API-Flows/validate-parameter-target
Parameter target must be JSON Pointer
2 parents 452d117 + 35ddbc7 commit bdfa3f0

File tree

4 files changed

+16
-11
lines changed

4 files changed

+16
-11
lines changed

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,11 @@ List<String> validateParameter(Parameter parameter, String workflowId ) {
239239
errors.add("'Workflow[" + workflowId + "]' parameter has no value");
240240
}
241241
}
242+
if(parameter.getTarget() != null) {
243+
if(!isValidJsonPointer(parameter.getTarget())) {
244+
errors.add("Parameter '" + name + "' target is not a valid Json Pointer");
245+
}
246+
}
242247
}
243248
return errors;
244249
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ void parseFromFile() {
1414

1515
OpenAPIWorkflowParserResult result = parser.parse(WORKFLOWS_SPEC_FILE);
1616
assertNotNull(result.getOpenAPIWorkflow());
17-
assertEquals("1.0.0", result.getOpenAPIWorkflow().getWorkflowsSpec());
17+
assertEquals("1.0.0-prerelease", result.getOpenAPIWorkflow().getWorkflowsSpec());
1818
assertNotNull(result.getOpenAPIWorkflow().getInfo());
1919
assertEquals("Petstore - Apply Coupons", result.getOpenAPIWorkflow().getInfo().getTitle());
2020
assertNotNull(result.getOpenAPIWorkflow().getComponents());

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -708,9 +708,9 @@ void invalidJsonPointer() {
708708
assertFalse(new OpenAPIWorkflowValidator().isValidJsonPointer("user/id"));
709709
}
710710

711-
// @Test
712-
// void isValidJsonPointer2() {
713-
// assertTrue(new OpenAPIWorkflowValidator().isValidJsonPointer("#/petId"));
714-
// }
711+
@Test
712+
void invalidJsonPointerSyntax() {
713+
assertFalse(new OpenAPIWorkflowValidator().isValidJsonPointer("#/petId"));
714+
}
715715

716716
}

src/test/resources/1.0.0/pet-coupons.workflow.yaml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
workflowsSpec: 1.0.0
1+
workflowsSpec: 1.0.0-prerelease
22
info:
33
title: Petstore - Apply Coupons
44
version: 1.0.0
@@ -116,22 +116,22 @@ workflows:
116116
parameters:
117117
- name: pet_id
118118
in: body
119-
target: $request.body#/petId
119+
target: /petId
120120
value: $inputs.pet_id
121121
- name: coupon_code
122122
in: body
123-
target: $request.body#/couponCode
123+
target: /couponCode
124124
value: $inputs.coupon_code
125125
- name: quantity
126126
in: body
127127
value: $inputs.quantity
128128
- name: status
129129
in: body
130-
target: $request.body#/status
130+
target: /status
131131
value: "placed"
132132
- name: complete
133133
in: body
134-
target: $request.body#/complete
134+
target: /complete
135135
value: false
136136
successCriteria:
137137
- condition: $statusCode == 200
@@ -165,4 +165,4 @@ components:
165165
format: int32
166166
pageSize:
167167
type: integer
168-
format: int32
168+
format: int32

0 commit comments

Comments
 (0)