Skip to content

Commit bd0c7e5

Browse files
author
Ron
authored
Merge pull request #579 from joeljons/over-quoted-string-example
Over quoted string example
2 parents bfe2c80 + 87f6ce9 commit bd0c7e5

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;
@@ -958,4 +961,24 @@ public void checkAllOfAreTaken() {
958961
assertEquals(2, swagger.getDefinitions().size());
959962

960963
}
964+
965+
@Test(description = "A string example should not be over quoted when parsing a yaml string")
966+
public void readingSpecStringShouldNotOverQuotingStringExample() throws Exception {
967+
SwaggerParser parser = new SwaggerParser();
968+
final Swagger swagger = parser.read("src/test/resources/over-quoted-example.yaml", null, false);
969+
970+
Map<String, Model> definitions = swagger.getDefinitions();
971+
assertEquals("NoQuotePlease", definitions.get("CustomerType").getExample());
972+
}
973+
974+
@Test(description = "A string example should not be over quoted when parsing a yaml node")
975+
public void readingSpecNodeShouldNotOverQuotingStringExample() throws Exception {
976+
String yaml = Files.readFile(new File("src/test/resources/over-quoted-example.yaml"));
977+
JsonNode rootNode = Yaml.mapper().readValue(yaml, JsonNode.class);
978+
SwaggerParser parser = new SwaggerParser();
979+
Swagger swagger = parser.read(rootNode,true);
980+
981+
Map<String, Model> definitions = swagger.getDefinitions();
982+
assertEquals("NoQuotePlease", definitions.get("CustomerType").getExample());
983+
}
961984
}
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)