Skip to content

Commit 2316e42

Browse files
authored
Merge branch 'master' into issue-1608
2 parents e6ecbcd + f754db1 commit 2316e42

File tree

5 files changed

+49
-0
lines changed

5 files changed

+49
-0
lines changed

modules/swagger-parser-v3/src/main/java/io/swagger/v3/parser/util/RefUtils.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,11 @@ public static String computeDefinitionName(String ref) {
4646
plausibleName = filePathElements[filePathElements.length - 1];
4747

4848
final String[] split = plausibleName.split("\\.");
49+
// Fix for issue-1621
4950
plausibleName = split[0];
51+
for (int i = 1; i < split.length - 1; i++) {
52+
plausibleName += "." + split[i];
53+
}
5054
}
5155

5256
return plausibleName;

modules/swagger-parser/src/test/java/io/swagger/parser/OpenAPIParserTest.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,26 @@ public void testIssue1143(){
5050
assertNotNull(result.getOpenAPI().getComponents().getSchemas().get("identificacion_usuario_aplicacion"));
5151
}
5252

53+
@Test
54+
public void testIssue1621() {
55+
final ParseOptions parseOptions = new ParseOptions();
56+
parseOptions.setResolve(true);
57+
parseOptions.setResolveFully(true);
58+
parseOptions.setResolveCombinators(false);
59+
OpenAPIParser openAPIParser = new OpenAPIParser();
60+
SwaggerParseResult swaggerParseResult = openAPIParser.readLocation("issue-1621/example.openapi.yaml", null, parseOptions);
61+
assertEquals(0, swaggerParseResult.getMessages().size());
62+
OpenAPI api = swaggerParseResult.getOpenAPI();
63+
assertEquals("POST Example", api.getPaths()
64+
.get("/example")
65+
.getPost()
66+
.getRequestBody()
67+
.getContent()
68+
.get("application/json")
69+
.getSchema()
70+
.getTitle());
71+
}
72+
5373
@Test
5474
public void testIssue749() {
5575
ParseOptions options = new ParseOptions();
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
title: GET Example
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
openapi: 3.0.1
2+
info:
3+
title: Example OpenAPI spec
4+
version: 0.0.1
5+
paths:
6+
'/example':
7+
post:
8+
requestBody:
9+
content:
10+
application/json:
11+
schema:
12+
$ref: '#/components/schemas/ExamplePost'
13+
responses:
14+
204:
15+
description: No content
16+
components:
17+
schemas:
18+
# Renaming this key from `Example` to `ExampleGet` stops the issue from occurring
19+
# Removing this key stops the issue from occurring
20+
Example:
21+
$ref: example.get.yaml
22+
ExamplePost:
23+
$ref: example.post.yaml
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
title: POST Example

0 commit comments

Comments
 (0)