Skip to content

Commit 0e3d076

Browse files
authored
ReplacePowerMockito: ensure mockito-core is added when PowerMock is removed (#920)
* Add failing test for missing mockito-core after PowerMock removal When a project only has PowerMock declared and gets Mockito transitively through powermock-api-mockito, ReplacePowerMockito removes the PowerMock dependencies but never adds mockito-core. Reproduces moderneinc/customer-requests#1926 * Replace PowerMock API dependency with mockito-core instead of just removing it When a project gets Mockito only transitively through powermock-api-mockito, RemoveDependency leaves no Mockito dependency at all. Instead of removing and then adding (which runs into stale GradleProject marker issues with AddDependency), use ChangeDependency to convert powermock-api-mockito directly to mockito-core:3.x. Handles both powermock-api-mockito (Mockito 1) and powermock-api-mockito2 (Mockito 2) artifact names. Fixes moderneinc/customer-requests#1926 * Regenerate recipes.csv * Add comment explaining mutual exclusivity of powermock-api-mockito artifacts
1 parent af19fad commit 0e3d076

3 files changed

Lines changed: 188 additions & 67 deletions

File tree

src/main/resources/META-INF/rewrite/powermockito.yml

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,20 @@ recipeList:
4646
- org.openrewrite.java.testing.mockito.PowerMockitoMockStaticToMockito
4747
- org.openrewrite.java.testing.mockito.PowerMockitoWhenNewToMockito
4848
- org.openrewrite.java.testing.mockito.CleanupPowerMockImports
49-
- org.openrewrite.java.dependencies.RemoveDependency:
50-
groupId: org.powermock
51-
artifactId: powermock-api-mockito*
49+
# powermock-api-mockito (Mockito 1.x bridge) and powermock-api-mockito2 (Mockito 2.x bridge)
50+
# are mutually exclusive; a project will only ever have one of them.
51+
- org.openrewrite.java.dependencies.ChangeDependency:
52+
oldGroupId: org.powermock
53+
oldArtifactId: powermock-api-mockito
54+
newGroupId: org.mockito
55+
newArtifactId: mockito-core
56+
newVersion: 3.x
57+
- org.openrewrite.java.dependencies.ChangeDependency:
58+
oldGroupId: org.powermock
59+
oldArtifactId: powermock-api-mockito2
60+
newGroupId: org.mockito
61+
newArtifactId: mockito-core
62+
newVersion: 3.x
5263
- org.openrewrite.java.dependencies.RemoveDependency:
5364
groupId: org.powermock
5465
artifactId: powermock-core

0 commit comments

Comments
 (0)