All Classes and Interfaces

Class
Description
A pluggable source of "this endpoint's contract is verified" evidence.
Gradle task that compares endpoints both declared in the configured OpenAPI documentation and implemented by scanned @RestController classes against verification evidence collected from the enabled ContractVerificationSources, and writes an AsciiDoc report of every endpoint with no such evidence - the "doppelganger APIs".
DSL extension for the Doppelganger API Detector Gradle plugin.
Gradle plugin that registers the detectDoppelgangerApis and updateDoppelgangerApiDetectorDSL tasks and wires the doppelgangerApiDetector DSL extension into the project.
Determines which endpoints are both declared in the OpenAPI documentation and implemented by a @RestController method, but have no matching verification evidence from any configured ContractVerificationSource - i.e.
Writes the AsciiDoc doppelganger API report: every endpoint that is declared in the OpenAPI documentation and implemented by a @RestController method, but has no verification evidence from any enabled ContractVerificationSource.
The scanContracts result for a single endpoint: how many response codes its OpenAPI operation declares, how many contract tests exist for it in total, and - only when includeResponseCoverage is enabled - how many of those tests cover each declared response code.
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.
Resolves the path portion of an OpenAPI root document's first servers[].url entry, e.g.
Computes, for every endpoint both declared in the OpenAPI documentation and implemented by a @RestController method, how many contract tests exist for it and - only when requested - how many of those tests cover each of its declared response codes.
Reads and writes ResponseCoverageRecords as newline-delimited JSON (NDJSON), one record per line, sorted by ResponseCoverageRecord.fingerprint() so that git diffs of the persisted file are minimal and stable - the same hand-rolled, dependency-free approach api-detector-core's ContractHistoryStore uses for the cross-plugin contract progress history.
Produces the next ResponseCoverageRecord map to persist, from the previously persisted map and this run's EndpointResponseCoverage rows - the response-coverage counterpart of api-detector-core's ContractHistoryUpdater.
Persisted, per-endpoint-and-response-code history of contract test coverage, keyed by <endpoint fingerprint>-<response code> (see ResponseCoverageHistoryUpdater).
Writes the == Response Coverage Over Time AsciiDoc table section for the scanContracts report, from a loaded/advanced ResponseCoverageRecord history map.
ContractVerificationSource for Spring RestDocs, recognising three independent call-chain shapes for the same underlying convention - a request-builder call paired with a document(...) call somewhere in the same method body: spring-restdocs-mockmvc: mockMvc.perform(get(...)/post(...)/put(...)/ delete(...)/patch(...)) together with .andDo(document(...)). spring-restdocs-webtestclient: webTestClient.get()/post()/put()/ delete()/patch().uri(...).exchange()...consumeWith(document(...)) - the HTTP verb comes from the request-builder method and the path from the uri(...) call. spring-restdocs-restassured: given(...).filter(document(...))... when().get(...)/post(...)/put(...)/delete(...)/patch(...) - the verb call directly scoped on a call named when.
Writes the AsciiDoc scanContracts report: for every endpoint both declared in the OpenAPI documentation and implemented by a @RestController method, its declared response codes and contract test count, plus - when includeResponseCoverage was enabled - a per-response-code test count breakdown.
Gradle task that, for every endpoint both declared in the configured OpenAPI documentation and implemented by a @RestController method, reports how many response codes its operation declares and how many contract tests exist for it - and, when DoppelgangerApiDetectorExtension.getIncludeResponseCoverage() is enabled, how many of those tests cover each declared response code.
ContractVerificationSource for Spring Cloud Contract: declarative contract DSL files under src/testContract/resources/contracts/**&#47;*.groovy (and .yml), read structurally for method '...' and url '...' / urlPath '...' entries.
Best-effort detection of the HTTP status code a test method asserts, from the same List<MethodCallExpr> a ContractVerificationSource AST scanner already collects for that method - not exhaustive, since a test can assert a response's status in ways this cannot recognise (a variable, a helper method, a custom matcher); such tests still count towards an endpoint's overall contract test count, they simply contribute no evidence to any specific response code's count.
Adds any doppelgangerApiDetector DSL properties missing from this project's build file, set to their default values - see com.arc_e_tect.gradle.dslupdater.DslUpdater and DoppelgangerApiDetectorDslSchema.
A single piece of contract verification evidence, together with the HTTP status code it was detected to assert - the richer counterpart of a plain Endpoint produced by ContractVerificationSource.scanWithStatusCodes(java.io.File).