iam: add conformance tests for IAM Identity Management APIs for GCP #186
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.
Summary
GCP IAM Admin API Conformance Testing Strategy
Specific challenges encountered with the GCP IAM Admin Java Client that necessitated a different testing approach compared to the standard REST-based conformance tests.
1. Client Transport Limitations (gRPC vs. REST)
Unlike other GCP client libraries we use, the
google-iam-adminlibrary does not natively expose an HTTP/JSON (REST) transport option in itsStubSettings. It forces the use of gRPC, which requires HTTP/2. This prevented us from using our standard HTTP-based WireMock recording setup.2. WireMock gRPC Extension Limitations
While we utilized the
wiremock-grpc-extensionto handle the HTTP/2 connection and protocol framing, it currently lacks full parity with the standard WireMock HTTP recorder:UNIMPLEMENTEDerrors when using standard auto-loaded mappings.3. Implementation of Custom Record/Replay Pattern
To bridge this gap, we implemented a manual Record/Replay workflow:
JsonFormatand saved them to a dedicatedrecorded_responsesdirectory (avoiding conflicts with WireMock's auto-scanner).