Skip to content

Commit 8bd59c6

Browse files
authored
bugfix: exclude 406 status code violations (#48)
1 parent 98d1a8d commit 8bd59c6

File tree

3 files changed

+19
-0
lines changed

3 files changed

+19
-0
lines changed

openapi-validation-api/src/main/java/com/getyourguide/openapi/validation/api/Rules.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,6 @@ public static class Request {
99

1010
public static class Response {
1111
public static final String BODY_SCHEMA_ONE_OF = "validation.response.body.schema.oneOf";
12+
public static final String STATUS_UNKNOWN = "validation.response.status.unknown";
1213
}
1314
}

openapi-validation-core/src/main/java/com/getyourguide/openapi/validation/core/exclusions/InternalViolationExclusions.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ public boolean isExcluded(OpenApiViolation violation) {
1515
return falsePositive404(violation)
1616
|| falsePositive400(violation)
1717
|| falsePositive405(violation)
18+
|| falsePositive406(violation)
1819
|| customViolationExclusions.isExcluded(violation)
1920
|| oneOfMatchesMoreThanOneSchema(violation);
2021
}
@@ -47,4 +48,9 @@ private boolean falsePositive405(OpenApiViolation violation) {
4748
return violation.getResponseStatus().orElse(0) == 405
4849
&& Rules.Request.OPERATION_NOT_ALLOWED.equals(violation.getRule());
4950
}
51+
52+
private boolean falsePositive406(OpenApiViolation violation) {
53+
return violation.getResponseStatus().orElse(0) == 406
54+
&& Rules.Response.STATUS_UNKNOWN.equals(violation.getRule());
55+
}
5056
}

openapi-validation-core/src/test/java/com/getyourguide/openapi/validation/core/exclusions/InternalViolationExclusionsTest.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,18 @@ public void when405ResponseCodeWithOperationNotAllowedViolationThenViolationExcl
145145
.build());
146146
}
147147

148+
@Test
149+
public void when406ResponseCodeWithStatusUnknownViolationThenViolationExcluded() {
150+
when(customViolationExclusions.isExcluded(any())).thenReturn(false);
151+
152+
checkViolationExcluded(OpenApiViolation.builder()
153+
.direction(Direction.RESPONSE)
154+
.rule("validation.response.status.unknown")
155+
.responseStatus(406)
156+
.message("")
157+
.build());
158+
}
159+
148160
private void checkViolationNotExcluded(OpenApiViolation violation) {
149161
var isExcluded = violationExclusions.isExcluded(violation);
150162

0 commit comments

Comments
 (0)