Skip to content

Commit 50f8098

Browse files
author
ralphdoe
committed
Merge branch 'master' of https://github.com/swagger-api/swagger-parser into bugfix/resolving-references-options
2 parents c7fced4 + bd0c7e5 commit 50f8098

File tree

3 files changed

+42
-2
lines changed

3 files changed

+42
-2
lines changed

modules/swagger-parser/src/main/java/io/swagger/parser/util/SwaggerDeserializer.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -841,8 +841,9 @@ else if(!SCHEMA_KEYS.contains(key)) {
841841
if(on != null) {
842842
model.setExample(on);
843843
}
844-
}
845-
else {
844+
} else if (exampleNode.isValueNode()) {
845+
model.setExample(exampleNode.asText());
846+
} else {
846847
model.setExample(exampleNode.toString());
847848
}
848849
}

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

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package io.swagger.parser;
22

3+
import com.fasterxml.jackson.databind.JsonNode;
34
import io.swagger.models.ArrayModel;
45
import io.swagger.models.ComposedModel;
56
import io.swagger.models.Model;
@@ -31,7 +32,9 @@
3132
import io.swagger.util.Yaml;
3233
import org.testng.Assert;
3334
import org.testng.annotations.Test;
35+
import org.testng.reporters.Files;
3436

37+
import java.io.File;
3538
import java.math.BigDecimal;
3639
import java.util.Arrays;
3740
import java.util.Collections;
@@ -990,4 +993,24 @@ public void checkAllOfAreTaken() {
990993
assertEquals(2, swagger.getDefinitions().size());
991994

992995
}
996+
997+
@Test(description = "A string example should not be over quoted when parsing a yaml string")
998+
public void readingSpecStringShouldNotOverQuotingStringExample() throws Exception {
999+
SwaggerParser parser = new SwaggerParser();
1000+
final Swagger swagger = parser.read("src/test/resources/over-quoted-example.yaml", null, false);
1001+
1002+
Map<String, Model> definitions = swagger.getDefinitions();
1003+
assertEquals("NoQuotePlease", definitions.get("CustomerType").getExample());
1004+
}
1005+
1006+
@Test(description = "A string example should not be over quoted when parsing a yaml node")
1007+
public void readingSpecNodeShouldNotOverQuotingStringExample() throws Exception {
1008+
String yaml = Files.readFile(new File("src/test/resources/over-quoted-example.yaml"));
1009+
JsonNode rootNode = Yaml.mapper().readValue(yaml, JsonNode.class);
1010+
SwaggerParser parser = new SwaggerParser();
1011+
Swagger swagger = parser.read(rootNode,true);
1012+
1013+
Map<String, Model> definitions = swagger.getDefinitions();
1014+
assertEquals("NoQuotePlease", definitions.get("CustomerType").getExample());
1015+
}
9931016
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
swagger: '2.0'
2+
paths:
3+
/newPerson:
4+
post:
5+
summary: Create new person
6+
description: Create new person
7+
parameters: []
8+
responses:
9+
200:
10+
description: OK
11+
schema:
12+
$ref: "#/definitions/CustomerType"
13+
definitions:
14+
CustomerType:
15+
type: string
16+
example: NoQuotePlease

0 commit comments

Comments
 (0)