Skip to content

Commit 7c801e3

Browse files
authored
Merge pull request swagger-api#372 from swagger-api/issue-343
added missing properties, tests
2 parents e816cdb + 84e1b80 commit 7c801e3

File tree

2 files changed

+73
-3
lines changed

2 files changed

+73
-3
lines changed

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

+11-1
Original file line numberDiff line numberDiff line change
@@ -527,6 +527,12 @@ else if ("formData".equals(value)) {
527527
map.put(MAX_LENGTH, iv);
528528
sp.setMaxLength(iv);
529529

530+
dbl = getDouble("multipleOf", obj, false, location, result);
531+
if(dbl != null) {
532+
map.put(MULTIPLE_OF, new BigDecimal(dbl));
533+
sp.setMultipleOf(dbl);
534+
}
535+
530536
map.put(UNIQUE_ITEMS, getBoolean("uniqueItems", obj, false, location, result));
531537

532538
ArrayNode an = getArray("enum", obj, false, location, result);
@@ -671,7 +677,6 @@ public Model definition(ObjectNode node, String location, ParseResult result) {
671677
ModelImpl impl = new ModelImpl();
672678
impl.setType(type);
673679

674-
675680
JsonNode ap = node.get("additionalProperties");
676681
if(ap != null && ap.getNodeType().equals(JsonNodeType.OBJECT)) {
677682
impl.setAdditionalProperties(Json.mapper().convertValue(ap, Property.class));
@@ -686,6 +691,11 @@ public Model definition(ObjectNode node, String location, ParseResult result) {
686691
value = getString("discriminator", node, false, location, result);
687692
impl.setDiscriminator(value);
688693

694+
Boolean bp = getBoolean("uniqueItems", node, false, location, result);
695+
if(bp != null) {
696+
impl.setUniqueItems(bp);
697+
}
698+
689699
ap = node.get("enum");
690700
if(ap != null) {
691701
ArrayNode arrayNode = getArray("enum", node, false, location, result);

modules/swagger-parser/src/test/java/io/swagger/parser/util/SwaggerDeserializerTest.java

+62-2
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import io.swagger.models.auth.BasicAuthDefinition;
66
import io.swagger.models.auth.In;
77
import io.swagger.models.auth.SecuritySchemeDefinition;
8+
import io.swagger.models.parameters.BodyParameter;
89
import io.swagger.models.parameters.Parameter;
910
import io.swagger.models.parameters.QueryParameter;
1011
import io.swagger.models.properties.*;
@@ -1193,7 +1194,6 @@ public void testPR246() throws Exception {
11931194

11941195
@Test
11951196
public void testIssue247() {
1196-
11971197
String yaml =
11981198
"swagger: '2.0'\n" +
11991199
"info:\n" +
@@ -1224,6 +1224,66 @@ public void testIssue247() {
12241224
SwaggerDeserializationResult result = parser.readWithInfo(yaml);
12251225
Swagger swagger = result.getSwagger();
12261226

1227-
Json.prettyPrint(swagger);
1227+
assertNotNull(swagger.getDefinitions().get("Pet"));
12281228
}
1229+
1230+
@Test
1231+
public void testIssue343Parameter() {
1232+
String yaml =
1233+
"swagger: '2.0'\n" +
1234+
"info:\n" +
1235+
" description: 'bleh'\n" +
1236+
" version: '2.0.0'\n" +
1237+
" title: 'Test'\n" +
1238+
"paths:\n" +
1239+
" /foo:\n" +
1240+
" post:\n" +
1241+
" parameters:\n" +
1242+
" - in: query\n" +
1243+
" name: skip\n" +
1244+
" type: integer\n" +
1245+
" format: int32\n" +
1246+
" multipleOf: 3\n" +
1247+
" - in: body\n" +
1248+
" name: body\n" +
1249+
" required: true\n" +
1250+
" schema:\n" +
1251+
" type: object\n" +
1252+
" additionalProperties:\n" +
1253+
" type: string\n" +
1254+
" responses:\n" +
1255+
" 200:\n" +
1256+
" description: 'OK'\n" +
1257+
"definitions:\n" +
1258+
" Fun:\n" +
1259+
" properties:\n" +
1260+
" id:\n" +
1261+
" type: integer\n" +
1262+
" format: int32\n" +
1263+
" multipleOf: 5\n" +
1264+
" mySet:\n" +
1265+
" type: array\n" +
1266+
" uniqueItems: true\n" +
1267+
" items:\n" +
1268+
" type: string";
1269+
1270+
SwaggerParser parser = new SwaggerParser();
1271+
1272+
SwaggerDeserializationResult result = parser.readWithInfo(yaml);
1273+
Swagger swagger = result.getSwagger();
1274+
1275+
QueryParameter qp = (QueryParameter)swagger.getPath("/foo").getPost().getParameters().get(0);
1276+
assertEquals(qp.getMultipleOf(), 3.0);
1277+
1278+
BodyParameter bp = (BodyParameter) swagger.getPath("/foo").getPost().getParameters().get(1);
1279+
ModelImpl schema = (ModelImpl)bp.getSchema();
1280+
assertTrue(schema.getAdditionalProperties() != null);
1281+
1282+
IntegerProperty id = (IntegerProperty)swagger.getDefinitions().get("Fun").getProperties().get("id");
1283+
assertEquals(id.getMultipleOf(), new BigDecimal("5"));
1284+
1285+
ArrayProperty ap = (ArrayProperty)swagger.getDefinitions().get("Fun").getProperties().get("mySet");
1286+
assertTrue(ap.getUniqueItems());
1287+
}
1288+
12291289
}

0 commit comments

Comments
 (0)