Skip to content

Commit 701f0b7

Browse files
authored
Merge pull request #3 from mservicetech/develop
Develop
2 parents ef35d4e + 45cc2f8 commit 701f0b7

File tree

4 files changed

+53
-3
lines changed

4 files changed

+53
-3
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
<modelVersion>4.0.0</modelVersion>
2020
<groupId>com.mservicetech</groupId>
2121
<artifactId>openapi-schema-validation</artifactId>
22-
<version>1.0.0</version>
22+
<version>1.0.1</version>
2323
<packaging>jar</packaging>
2424
<description>openapi schema for openpai 3.*</description>
2525
<url>https://github.com/mservicetech/openapi-schema-validation</url>

src/main/java/com/mservicetech/openapi/validation/OpenApiValidator.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -194,8 +194,10 @@ private ValidationResult validateDeserializedValues(final RequestEntity requestE
194194
.filter(p -> ParameterType.is(p.getIn(), type))
195195
.forEach(p->{
196196
Object deserializedValue = getDeserializedValue(requestEntity, p.getName(), type);
197-
if (null==deserializedValue) {
198-
validationResult.addSkipped(p);
197+
if (null==deserializedValue ) {
198+
if (p.getRequired()) {
199+
validationResult.addSkipped(p);
200+
}
199201
}else {
200202
Status s = schemaValidator.validate(deserializedValue, Overlay.toJson((SchemaImpl)(p.getSchema())), p.getName());
201203
validationResult.addStatus(s);

src/test/java/com/mservicetech/openapi/validation/OpenApiValidatorTest.java

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,4 +117,51 @@ public void testRequestPath3() {
117117
Assert.assertEquals( status.getCode(), "ERR11001");
118118
//{"statusCode":400,"code":"ERR11001","message":"VALIDATOR_REQUEST_PARAMETER_MISSING","description":"Parameter get is required but is missing.","severity":"ERROR"}
119119
}
120+
121+
@Test
122+
public void testRequestPath4() {
123+
124+
RequestEntity requestEntity = new RequestEntity();
125+
Map<String, Object> pathMap = new HashMap<>();
126+
pathMap.put("petId", "112245");
127+
requestEntity.setPathParameters(pathMap);
128+
Status status = openApiValidator.validateRequestPath("/pets/{petId}", "get", requestEntity);
129+
Assert.assertNotNull(status);
130+
Assert.assertEquals( status.getCode(), "ERR11004");
131+
//{"statusCode":400,"code":"ERR11004","message":"VALIDATOR_SCHEMA","description":"Schema Validation Error - petId: must have a maximum value of 5","severity":"ERROR"}
132+
}
133+
134+
@Test
135+
public void testRequestQueryMissNotRequired() {
136+
137+
RequestEntity requestEntity = new RequestEntity();
138+
Map<String, Object> queryMap = new HashMap<>();
139+
requestEntity.setQueryParameters(queryMap);
140+
Status status = openApiValidator.validateRequestPath("/pets", "get", requestEntity);
141+
Assert.assertNull(status);
142+
}
143+
144+
@Test
145+
public void testRequestQueryWithQuery() {
146+
147+
RequestEntity requestEntity = new RequestEntity();
148+
Map<String, Object> queryMap = new HashMap<>();
149+
queryMap.put("limit", 12);
150+
requestEntity.setQueryParameters(queryMap);
151+
Status status = openApiValidator.validateRequestPath("/pets", "get", requestEntity);
152+
Assert.assertNull(status);
153+
}
154+
155+
@Test
156+
public void testRequestQuery2() {
157+
158+
RequestEntity requestEntity = new RequestEntity();
159+
Map<String, Object> queryMap = new HashMap<>();
160+
queryMap.put("limit", "abbb");
161+
requestEntity.setQueryParameters(queryMap);
162+
Status status = openApiValidator.validateRequestPath("/pets", "get", requestEntity);
163+
Assert.assertNotNull(status);
164+
Assert.assertEquals( status.getCode(), "ERR11004");
165+
//{"statusCode":400,"code":"ERR11004","message":"VALIDATOR_SCHEMA","description":"Schema Validation Error - limit: string found, integer expected","severity":"ERROR"}
166+
}
120167
}

src/test/resources/openapi.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ paths:
8989
description: The id of the pet to retrieve
9090
schema:
9191
type: string
92+
maxLength: 5
9293
security:
9394
- petstore_auth:
9495
- 'read:pets'

0 commit comments

Comments
 (0)