Skip to content
This repository was archived by the owner on Nov 24, 2022. It is now read-only.

Commit c0c608c

Browse files
committed
Reproduce failing request body examples
1 parent b83b171 commit c0c608c

4 files changed

Lines changed: 65 additions & 4 deletions

File tree

modules/swagger-parser-v3/src/test/java/io/swagger/v3/parser/test/OpenAPIV3ParserTest.java

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,7 @@ public void testIssue853() {
225225
ParseOptions options = new ParseOptions();
226226
options.setResolve(true);
227227
options.setFlatten(true);
228-
final OpenAPI openAPI = new OpenAPIV3Parser().readLocation("issue-837-853/main.yaml", null, options).getOpenAPI();
228+
final OpenAPI openAPI = new OpenAPIV3Parser().readLocation("issue-837-853-1131/main.yaml", null, options).getOpenAPI();
229229

230230
Assert.assertNotNull(openAPI);
231231

@@ -248,7 +248,7 @@ public void testIssue853() {
248248
public void testIssue837() {
249249
ParseOptions options = new ParseOptions();
250250
options.setResolve(true);
251-
final OpenAPI openAPI = new OpenAPIV3Parser().readLocation("issue-837-853/main.yaml", null, options).getOpenAPI();
251+
final OpenAPI openAPI = new OpenAPIV3Parser().readLocation("issue-837-853-1131/main.yaml", null, options).getOpenAPI();
252252

253253
Assert.assertNotNull(openAPI);
254254

@@ -262,6 +262,38 @@ public void testIssue837() {
262262
Assert.assertEquals(examples.get("external").get$ref(), "#/components/examples/ExternalRef");
263263
}
264264

265+
@Test
266+
public void testIssue1131() {
267+
ParseOptions options = new ParseOptions();
268+
options.setResolve(true);
269+
final OpenAPI openAPI = new OpenAPIV3Parser().readLocation("issue-837-853-1131/main.yaml", null, options).getOpenAPI();
270+
271+
Assert.assertNotNull(openAPI);
272+
273+
Content content = openAPI.getPaths().get("/events").getGet().getRequestBody().getContent();
274+
Assert.assertNotNull(content);
275+
276+
Map<String, Example> examples = content.get("application/json").getExamples();
277+
Assert.assertEquals(examples.size(), 3);
278+
Assert.assertEquals(((ObjectNode) examples.get("plain").getValue()).get("test").asText(), "plain");
279+
Assert.assertEquals(examples.get("local").get$ref(), "#/components/examples/LocalRef");
280+
Assert.assertEquals(examples.get("external").get$ref(), "#/components/examples/ExternalRef");
281+
282+
// Also cover the case from Issue 853
283+
Operation post = openAPI.getPaths().get("/guests").getPost();
284+
Assert.assertNotNull(post);
285+
286+
content = post.getRequestBody().getContent();
287+
Assert.assertNotNull(content);
288+
289+
examples = content.get("application/json").getExamples();
290+
Assert.assertEquals(examples.size(), 1);
291+
assertNotNull(openAPI.getComponents());
292+
assertNotNull(openAPI.getComponents().getExamples());
293+
assertNotNull(openAPI.getComponents().getExamples().get("testExample"));
294+
assertEquals(((LinkedHashMap<String, Object>)openAPI.getComponents().getExamples().get("testExample").getValue()).get("test"),"value");
295+
}
296+
265297
@Test
266298
public void testIssue834() {
267299
ParseOptions options = new ParseOptions();

modules/swagger-parser-v3/src/test/resources/issue-837-853/components.yaml renamed to modules/swagger-parser-v3/src/test/resources/issue-837-853-1131/components.yaml

File renamed without changes.

modules/swagger-parser-v3/src/test/resources/issue-837-853/external-operation.yaml renamed to modules/swagger-parser-v3/src/test/resources/issue-837-853-1131/external-operation.yaml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,16 @@
11
post:
22
description: add a guest
33
operationId: addGuest
4+
requestBody:
5+
content:
6+
application/json:
7+
schema:
8+
properties:
9+
test:
10+
type: string
11+
examples:
12+
testExample:
13+
$ref: '#/components/examples/testExample'
414
responses:
515
'201':
616
description: New guest added to event list

modules/swagger-parser-v3/src/test/resources/issue-837-853/main.yaml renamed to modules/swagger-parser-v3/src/test/resources/issue-837-853-1131/main.yaml

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,25 @@ paths:
99
get:
1010
description: A list of events
1111
operationId: getEvents
12+
requestBody:
13+
content:
14+
application/json:
15+
schema:
16+
required:
17+
- test
18+
type: object
19+
properties:
20+
test:
21+
type: string
22+
examples:
23+
plain:
24+
summary: plain example
25+
value:
26+
test: plain
27+
local:
28+
$ref: '#/components/examples/LocalRef'
29+
external:
30+
$ref: './issue-837-853-1131/components.yaml#/components/examples/ExternalRef'
1231
responses:
1332
'200':
1433
description: OK
@@ -29,9 +48,9 @@ paths:
2948
local:
3049
$ref: '#/components/examples/LocalRef'
3150
external:
32-
$ref: './issue-837-853/components.yaml#/components/examples/ExternalRef'
51+
$ref: './issue-837-853-1131/components.yaml#/components/examples/ExternalRef'
3352
/guests:
34-
$ref: './issue-837-853/external-operation.yaml'
53+
$ref: './issue-837-853-1131/external-operation.yaml'
3554

3655
components:
3756
examples:

0 commit comments

Comments
 (0)