Repository navigation
Conversation
This enables creating a nicer API to expose publicly for use by plugin wrappers. See: pact-foundation#492
…ilder Setting the plugin contents completes a synchronous plugin interaction, so WithContent now returns void instead of the same builder. The plugin splits one contents document into the request and its responses itself: a second call would replace the request but append another response, which is why the builder no longer allows it. Provider states stay chainable via Given. Adds unit tests for the plugin request and pact builders and a docs page for the raw plugin API, linked from the README. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Add a public HTTP plugin pact/request/response API on top of the synchronous plugin prerequisite. Load content plugins through the existing factory, create HTTP rather than synchronous-message interactions, and route plugin contents independently to request and response parts. Reuse HTTP drivers for methods, paths, headers, queries and status; retain mock-server verification, logging, pact writing and plugin cleanup inside PactNet. Keep native handles and drivers internal. Reject repeated contents and response-stage reuse, validate HTTP status, and preserve header/query indexing. Add focused tests and HTTP plugin guidance. Asynchronous binary plugin message reification remains a separate contribution. Validation: 60 affected builder tests passed, including existing synchronous and HTTP behavior; the external Avro example passed native request/response and provider/mismatch verification with hominux avro 0.1.3 and FFI 0.4.27.
Add transport-free asynchronous plugin pact/message builders and configured consumer verification. Expose generated binary payloads, media type and cloned JSON metadata, write the pact only after successful consumption, and keep native reification and plugin cleanup internal. Decode the native V4 base64 envelope and free its allocated string. Apply user metadata after plugin content configuration, which can replace native message metadata. Preserve the existing JSON message APIs and add ordering, terminal-content, callback success/failure and disposal tests. Add an opt-in native Avro 0.1.3 synchronous capability check. With FFI 0.4.27, its unlabelled single-record configuration creates an empty sync request and no responses. Document the need for plugin request/response parts and a separate transport-free sync consumer matching API rather than presenting the transport-based gRPC builder as Avro sync support. Validation: 109 affected plugin/message/HTTP builder tests passed with the capability check enabled. External Avro async consumer/provider and mismatch checks passed with binary records and metadata. HTTP and gRPC regressions remained green.
Upgrade the Avro async branch native package bootstrap from pact-ffi 0.4.27 to released 0.5.10. The extension's Avro provider verification returned HTTP 200 but plugin content comparison failed with a transport error on Windows under 0.4.27. Repacking the same PactNet source against 0.5.10 makes all five Avro sample tests pass locally, including provider matching and the expected provider mismatch. All five supported runtime libraries download with published SHA-256 verification. Other legacy PactNet fixture tests may need fixture metadata updates before the general branch suite runs against 0.5.10; this branch change is the Avro async bootstrap prerequisite.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.