Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rewrite both JMockit @Mocked and @Injectable annotated arguments #532

Merged

Conversation

shivanisky
Copy link
Contributor

@shivanisky shivanisky commented Jun 20, 2024

See https://jmockit.github.io/tutorial/Mocking.html#injectable
As we are already doing with @mocked annotation, also doing the same with @Injectable ie migration of method params with this annotation and fields with this annotation

Checklist

  • I've added unit tests to cover both positive and negative cases
  • I've read and applied the recipe conventions and best practices
  • I've used the IntelliJ IDEA auto-formatter on affected files

shivanisky and others added 5 commits June 19, 2024 13:33
…even if someone mistakenly puts times and minTimes together, it still migrates without issue
…tly as we are doing the Mocked annotation ie method parameter annotation as well as field annotation. Have moved all of the code from JMockitMockedVariableToMockito to JMockitAnnotationToMockito for code reuse. Also add the corresponding test cases and jmockit.yml file modification.
@timtebeek timtebeek self-requested a review June 20, 2024 09:29
@timtebeek timtebeek added enhancement New feature or request recipe Recipe request labels Jun 20, 2024
@timtebeek
Copy link
Contributor

Great to see Injectable covered too; thanks @shivanisky ! I've changed the implementation a bit, at first to add an option to remove the extending classes, but right after settling on just having one recipe that replaces both annotations as once. Hope you agree!

@timtebeek timtebeek changed the title Add jmockit injectable migration to mockito - same as mocked migration Rewrite both JMockit @Mocked and @Injectable annotated arguments Jun 20, 2024
@timtebeek timtebeek merged commit 8388b28 into openrewrite:main Jun 20, 2024
2 checks passed
amitojduggal pushed a commit to amitojduggal/rewrite-testing-frameworks that referenced this pull request Jun 20, 2024
…penrewrite#532)

* Ensure Jmockit expectations with no times or result transform to a mockito verify

* Minor polish to text blocks

* Make times, minTimes, maxTimes more flexible as it was originally so even if someone mistakenly puts times and minTimes together, it still migrates without issue

* Add feature to enable migration of Jmockit Injectable annotation exactly as we are doing the Mocked annotation ie method parameter annotation as well as field annotation. Have moved all of the code from JMockitMockedVariableToMockito to JMockitAnnotationToMockito for code reuse. Also add the corresponding test cases and jmockit.yml file modification.

* Use `@Option` instead of inheritance

* Drop Option and just replace both variants

* Update display name and description to match application

---------

Co-authored-by: Tim te Beek <tim@moderne.io>
timtebeek added a commit that referenced this pull request Jun 23, 2024
)

* Adding Kotlin support to the recipes, fixing the recipes to work use preVisit instead of visitCompilationUnit.

* Do a single recipe run per unit test

* Stop after pre visit, since we're only updating imports

* Adding Kotlin support for the UpdateBeforeAfterAnnotations, along with new tests for kotlin

* Added kotlin tests for AddParameterizedTestAnnotation

* Add Picnic AssertJ rules to AssertJ best practices (#527)

* Add Picnic AssertJ rules to AssertJ best practices

* Include Picnic's JUnitToAssertJRulesRecipes in migration

* Exclude `jakarta.xml.bind-api` from TimeFold

* Move the exclude to rewrite-third-party

* refactor: Only publish build scans if authenticated

Use this link to re-run the recipe: https://app.moderne.io/recipes/builder/kLJjXlflM?organizationId=T3BlblJld3JpdGU%3D

Co-authored-by: Moderne <team@moderne.io>

* Drop Java 17 requirement through rewrite-third-party (#531)

* Jmockit Expectations with no times or result should be transformed to Mockito verify statement (#530)

* Ensure Jmockit expectations with no times or result transform to a mockito verify

* Minor polish to text blocks

* Make times, minTimes, maxTimes more flexible as it was originally so even if someone mistakenly puts times and minTimes together, it still migrates without issue

---------

Co-authored-by: Tim te Beek <tim@moderne.io>

* Rewrite both JMockit  `@Mocked` and `@Injectable` annotated arguments (#532)

* Ensure Jmockit expectations with no times or result transform to a mockito verify

* Minor polish to text blocks

* Make times, minTimes, maxTimes more flexible as it was originally so even if someone mistakenly puts times and minTimes together, it still migrates without issue

* Add feature to enable migration of Jmockit Injectable annotation exactly as we are doing the Mocked annotation ie method parameter annotation as well as field annotation. Have moved all of the code from JMockitMockedVariableToMockito to JMockitAnnotationToMockito for code reuse. Also add the corresponding test cases and jmockit.yml file modification.

* Use `@Option` instead of inheritance

* Drop Option and just replace both variants

* Update display name and description to match application

---------

Co-authored-by: Tim te Beek <tim@moderne.io>

* Adding Kotlin support for the UpdateBeforeAfterAnnotations, along with new tests for kotlin

* Added kotlin tests for AddParameterizedTestAnnotation

* Restoring changes to issue to retain the references

* Remove trailing whitespace in text blocks

* Update src/test/java/org/openrewrite/java/testing/junit5/UpdateBeforeAfterAnnotationsTest.java

Co-authored-by: Tim te Beek <timtebeek@gmail.com>

* Removing tests for kotlin and keep one in the Documentation example. We can tackle the issues and add tests separately if we see bug in workflows.

* Removing extra tests for Kotlin, and keeping one, fixing issue with failing build.

* Restored changes to the disabled test.

* Minor touch up

---------

Co-authored-by: Amitoj Duggal <a.duggal@mytaxi.com>
Co-authored-by: Tim te Beek <tim@moderne.io>
Co-authored-by: Tim te Beek <timtebeek@gmail.com>
Co-authored-by: Moderne <team@moderne.io>
Co-authored-by: Shivani Sharma <s.happyrose@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request recipe Recipe request
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

2 participants