Skip to content

Commit 8bb6909

Browse files
committed
Test parse from JSON
1 parent 658915b commit 8bb6909

File tree

2 files changed

+96
-3
lines changed

2 files changed

+96
-3
lines changed

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

Lines changed: 32 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package com.apiflows.parser;
22

3-
import com.apiflows.model.OpenAPIWorkflow;
43
import com.apiflows.model.Step;
54
import org.junit.jupiter.api.Test;
65
import static org.junit.jupiter.api.Assertions.*;
@@ -65,13 +64,43 @@ void simpleWorkflow() {
6564
assertEquals(2, step.getOutputs().size());
6665
}
6766

67+
@Test
68+
void parseFromJsonFile() {
69+
final String WORKFLOWS_SPEC_FILE = "src/test/resources/1.0.0/workflow.json";
70+
71+
OpenAPIWorkflowParserResult result = parser.parse(WORKFLOWS_SPEC_FILE);
72+
assertTrue(result.isJson());
73+
assertNotNull(result.getOpenAPIWorkflow());
74+
assertEquals("1.0.0", result.getOpenAPIWorkflow().getWorkflowsSpec());
75+
}
76+
6877
@Test
6978
public void isYaml() {
7079
final String WORKFLOWS_SPEC_FILE = "src/test/resources/1.0.0/pet-coupons.workflow.yaml";
7180

7281
OpenAPIWorkflowParserResult result = parser.parse(WORKFLOWS_SPEC_FILE);
73-
assertTrue(result.getOpenAPIWorkflow().isYaml());
74-
assertFalse(result.getOpenAPIWorkflow().isJson());
82+
assertTrue(result.isYaml());
83+
assertFalse(result.isJson());
7584
}
7685

86+
@Test
87+
public void getJsonFormat() {
88+
final String CONTENT = "{" +
89+
"\"workflowsSpec\" : \"1.0.0\"" +
90+
"}";
91+
92+
OpenAPIWorkflowParserResult.Format format = parser.getFormat(CONTENT);
93+
assertEquals(OpenAPIWorkflowParserResult.Format.JSON, format);
94+
}
95+
96+
@Test
97+
public void getYamlFormat() {
98+
final String CONTENT = "" +
99+
"workflowsSpec : 1.0.0" +
100+
"info:" +
101+
" title: simple\n";
102+
103+
OpenAPIWorkflowParserResult.Format format = parser.getFormat(CONTENT);
104+
assertEquals(OpenAPIWorkflowParserResult.Format.YAML, format);
105+
}
77106
}
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
{
2+
"workflowsSpec": "1.0.0",
3+
"info": {
4+
"title": "simple",
5+
"version": "v1",
6+
"description": "Simple workflow"
7+
},
8+
"sourceDescriptions": [
9+
{
10+
"name": "pet-coupons",
11+
"url": "./pet-coupons.openapi.yaml",
12+
"type": "openapi"
13+
}
14+
],
15+
"workflows": [
16+
{
17+
"workflowId": "loginUser",
18+
"summary": "Login User",
19+
"description": "This workflow lays out the steps to login a user",
20+
"inputs": {
21+
"type": "object",
22+
"properties": {
23+
"username": {
24+
"type": "string"
25+
},
26+
"password": {
27+
"type": "string"
28+
}
29+
}
30+
},
31+
"steps": [
32+
{
33+
"stepId": "loginStep",
34+
"description": "This step demonstrates the user login step",
35+
"operationId": "loginUser",
36+
"parameters": [
37+
{
38+
"name": "username",
39+
"in": "query",
40+
"value": "$inputs.username"
41+
},
42+
{
43+
"name": "password",
44+
"in": "query",
45+
"value": "$inputs.password"
46+
}
47+
],
48+
"successCriteria": [
49+
{
50+
"condition": "$statusCode == 200"
51+
}
52+
],
53+
"outputs": {
54+
"tokenExpires": "$response.header.X-Expires-After",
55+
"rateLimit": "$response.header.X-Rate-Limit"
56+
}
57+
}
58+
],
59+
"outputs": {
60+
"tokenExpires": "$steps.loginStep.outputs.tokenExpires"
61+
}
62+
}
63+
]
64+
}

0 commit comments

Comments
 (0)