Class OpenApiRequestValidatorScanner

java.lang.Object
com.arc_e_tect.gradle.doppelganger.scan.OpenApiRequestValidatorScanner
All Implemented Interfaces:
ContractVerificationSource

public class OpenApiRequestValidatorScanner extends Object implements ContractVerificationSource
ContractVerificationSource for the Atlassian OpenAPI request validator: a test method whose call chain contains either .filter(new OpenApiValidationFilter(...)) (REST Assured style) or a direct .validateRequest(...) / .validateResponse(...) call, paired with a REST-Assured-style request built via given()...when()...get(...) calls in the same method.

The library's Maven coordinates changed after v3.0.0 from swagger-request-validator-* to openapi-request-validator-* under com.atlassian.oai; this scanner matches by simple class/method names only, so both old and new artifact versions are recognised without needing either on its own classpath.

  • Constructor Details

    • OpenApiRequestValidatorScanner

      public OpenApiRequestValidatorScanner()
      Creates a new OpenApiRequestValidatorScanner.
  • Method Details

    • scan

      public List<com.arc_e_tect.gradle.detector.core.model.Endpoint> scan(File rootDir) throws IOException
      Scans rootDir recursively and returns every endpoint this source found verification evidence for.

      The returned Endpoint.declaringClass() and Endpoint.methodSignature() identify the test (or contract file) that supplied the evidence, not a production @RestController.

      Specified by:
      scan in interface ContractVerificationSource
      Parameters:
      rootDir - the directory to scan recursively; scanning a non-existent or non-directory path returns an empty list rather than failing
      Returns:
      possibly-empty list of verified endpoints, never null
      Throws:
      IOException - if a file under rootDir cannot be read
    • scanWithStatusCodes

      public List<VerifiedContractTest> scanWithStatusCodes(File rootDir) throws IOException
      Scans rootDir recursively, same as ContractVerificationSource.scan(File), but additionally reports the HTTP status code each piece of evidence was detected to assert, when a source is able to determine one.

      The default implementation delegates to ContractVerificationSource.scan(File) and reports every entry with no status code, so an implementation that has no meaningful way to detect one simply inherits correct, backward-compatible behavior without overriding anything.

      Specified by:
      scanWithStatusCodes in interface ContractVerificationSource
      Parameters:
      rootDir - the directory to scan recursively; scanning a non-existent or non-directory path returns an empty list rather than failing
      Returns:
      possibly-empty list of verified contract tests, never null
      Throws:
      IOException - if a file under rootDir cannot be read