in oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/skeleton/responses/ResponsesResponsesDiffValidator.java [43:100]
public List<OasDiffViolation> validateCompare(OasDiffValidationContext context,
OasObjectPropertyLocation leftLocation, ApiResponses leftOasObject,
OasObjectPropertyLocation rightLocation, ApiResponses rightOasObject) {
List<OasDiffViolation> violations = new ArrayList<>();
for (Map.Entry<String, ApiResponse> entry : leftOasObject.entrySet()) {
String leftStatus = entry.getKey();
ApiResponse leftResponse = entry.getValue();
OasObjectPropertyLocation leftResponseLoc = leftLocation.property(leftStatus, OasObjectType.RESPONSE);
ApiResponse rightResponse = rightOasObject.get(leftStatus);
if (rightResponse == null) {
violations.addAll(
doDiffValidateProperty(
context,
leftResponseLoc,
leftResponse,
null,
null,
responseValidators
)
);
} else {
OasObjectPropertyLocation rightResponseLoc = rightLocation.property(leftStatus, OasObjectType.RESPONSE);
violations.addAll(
doDiffValidateProperty(
context,
leftResponseLoc,
leftResponse,
rightResponseLoc,
rightResponse,
responseValidators
)
);
}
}
for (Map.Entry<String, ApiResponse> entry : rightOasObject.entrySet()) {
String rightStatus = entry.getKey();
if (leftOasObject.containsKey(rightStatus)) {
continue;
}
ApiResponse rightResponse = entry.getValue();
OasObjectPropertyLocation rightResponseLoc = rightLocation.property(rightStatus, OasObjectType.RESPONSE);
violations.addAll(
doDiffValidateProperty(
context,
null,
null,
rightResponseLoc,
rightResponse,
responseValidators
)
);
}
return violations;
}