Skip to content

Update MockWebServer MockResponse test for nested-type render change#1020

Merged
steve-aom-elliott merged 1 commit into
mainfrom
fix/mockwebserver-builder-nested-type-render
Jun 15, 2026
Merged

Update MockWebServer MockResponse test for nested-type render change#1020
steve-aom-elliott merged 1 commit into
mainfrom
fix/mockwebserver-builder-nested-type-render

Conversation

@steve-aom-elliott

@steve-aom-elliott steve-aom-elliott commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

The UpdateMockWebServerMockResponseTest.shouldMigrateMockResponseToBuilder() test started failing against the latest rewrite snapshot (8.85.0-SNAPSHOT).

Root cause

  • openrewrite/rewrite#7993 changed ChangeMethodInvocationReturnType to rewrite a variable’s declared type only when the variable’s initializer is the matched invocation, not when the match is merely nested inside the initializer.

In this test, mockResponse’s initializer is a chain whose outermost call is setHeader(...), which is not in the recipe’s replacement map — so the matched setStatus(...) is nested, not the initializer. The declared-type change is therefore now performed by the later ChangeType step (rather than ChangeMethodInvocationReturnType), and ChangeType renders the nested type in qualified MockResponse.Builder form (reusing the existing mockwebserver3.MockResponse import) instead of importing mockwebserver3.MockResponse.Builder and using the simple name Builder.

Change

Update the expected output of shouldMigrateMockResponseToBuilder:

 import mockwebserver3.MockResponse;
-import mockwebserver3.MockResponse.Builder;
 ...
-    private Builder mockResponse = new MockResponse.Builder()
+    private MockResponse.Builder mockResponse = new MockResponse.Builder()

This matches the new (more correct, consistent) output — mockResponse2 in the same test already renders as MockResponse.Builder.

Verification

  • Pinned core org.openrewrite modules to 8.84.7 (pre-#7993): test passes.
  • Against 8.85.0-SNAPSHOT (has #7993): test fails before this change, passes after.

…ange

rewrite-core no longer rewrites a variable's declared type via
ChangeMethodInvocationReturnType when the matched invocation is nested
in the initializer rather than the initializer itself (openrewrite/rewrite#7993).
The declared type is now changed by ChangeType, which renders the nested
Builder as the qualified `MockResponse.Builder` (reusing the outer import)
instead of importing `MockResponse.Builder` and using the simple name.

Update the expected output of shouldMigrateMockResponseToBuilder to match,
consistent with how mockResponse2 already renders in the same test.
@github-project-automation github-project-automation Bot moved this to In Progress in OpenRewrite Jun 15, 2026
@steve-aom-elliott steve-aom-elliott added bug Something isn't working recipe Recipe request test provided labels Jun 15, 2026
@steve-aom-elliott steve-aom-elliott moved this from In Progress to Ready to Review in OpenRewrite Jun 15, 2026
@steve-aom-elliott steve-aom-elliott merged commit ff368ff into main Jun 15, 2026
1 check passed
@steve-aom-elliott steve-aom-elliott deleted the fix/mockwebserver-builder-nested-type-render branch June 15, 2026 16:36
@github-project-automation github-project-automation Bot moved this from Ready to Review to Done in OpenRewrite Jun 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working recipe Recipe request test provided

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant