Skip to content

Commit 7d41e02

Browse files
committed
Unit Test to show Local Examples are absent from final OpenApi POJO
Signed-off-by: Jehandad Kamal <[email protected]>
1 parent 911d018 commit 7d41e02

File tree

4 files changed

+52
-8
lines changed

4 files changed

+52
-8
lines changed

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

Lines changed: 26 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -44,12 +44,7 @@
4444
import java.math.BigDecimal;
4545
import java.net.HttpURLConnection;
4646
import java.nio.charset.StandardCharsets;
47-
import java.util.ArrayList;
48-
import java.util.HashSet;
49-
import java.util.List;
50-
import java.util.Map;
51-
import java.util.Random;
52-
import java.util.Set;
47+
import java.util.*;
5348

5449
import static com.github.tomakehurst.wiremock.client.WireMock.*;
5550
import static org.testng.Assert.*;
@@ -60,11 +55,35 @@ public class OpenAPIV3ParserTest {
6055
protected WireMockServer wireMockServer;
6156

6257

58+
@Test
59+
public void testIssue853() {
60+
ParseOptions options = new ParseOptions();
61+
options.setResolve(true);
62+
options.setFlatten(true);
63+
final OpenAPI openAPI = new OpenAPIV3Parser().readLocation("issue-837-853/main.yaml", null, options).getOpenAPI();
64+
65+
Assert.assertNotNull(openAPI);
66+
67+
Operation post = openAPI.getPaths().get("/guests").getPost();
68+
Assert.assertNotNull(post);
69+
70+
Content content = post.getResponses().get("201").getContent();
71+
Assert.assertNotNull(content);
72+
73+
Map<String, Example> examples = content.get("application/json").getExamples();
74+
Assert.assertEquals(examples.size(), 1);
75+
assertNotNull(openAPI.getComponents());
76+
assertNotNull(openAPI.getComponents().getExamples());
77+
assertNotNull(openAPI.getComponents().getExamples().get("testExample"));
78+
assertEquals(((LinkedHashMap<String, Object>)openAPI.getComponents().getExamples().get("testExample").getValue()).get("test"),"value");
79+
80+
}
81+
6382
@Test
6483
public void testIssue837() {
6584
ParseOptions options = new ParseOptions();
6685
options.setResolve(true);
67-
final OpenAPI openAPI = new OpenAPIV3Parser().readLocation("./issue837/main.yaml", null, options).getOpenAPI();
86+
final OpenAPI openAPI = new OpenAPIV3Parser().readLocation("issue-837-853/main.yaml", null, options).getOpenAPI();
6887

6988
Assert.assertNotNull(openAPI);
7089

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
post:
2+
description: add a guest
3+
operationId: addGuest
4+
responses:
5+
'201':
6+
description: New guest added to event list
7+
content:
8+
application/json:
9+
schema:
10+
properties:
11+
test:
12+
type: string
13+
examples:
14+
testExample:
15+
$ref: '#/components/examples/testExample'
16+
components:
17+
examples:
18+
testExample:
19+
value:
20+
test: value
21+
22+

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,10 @@ paths:
2929
local:
3030
$ref: '#/components/examples/LocalRef'
3131
external:
32-
$ref: './issue837/components.yaml#/components/examples/ExternalRef'
32+
$ref: './issue-837-853/components.yaml#/components/examples/ExternalRef'
33+
/guests:
34+
$ref: './issue-837-853/external-operation.yaml'
35+
3336
components:
3437
examples:
3538
LocalRef:

0 commit comments

Comments
 (0)