public List validateCompare()

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;
  }