-
-
Notifications
You must be signed in to change notification settings - Fork 2.6k
test: Use Assume.assumeThat for SequencedCollection tests #3711
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
test: Use Assume.assumeThat for SequencedCollection tests #3711
Conversation
…ard `Assume.assumeThat` utility for conditional execution. Follow-up to mockito#3708 Signed-off-by: BeomSeogKim <kbs4520@daum.net>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #3711 +/- ##
============================================
- Coverage 86.43% 86.42% -0.02%
Complexity 2969 2969
============================================
Files 341 341
Lines 9011 9011
Branches 1110 1110
============================================
- Hits 7789 7788 -1
- Misses 941 942 +1
Partials 281 281 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@bric3 can you review as well? I think my review is what you intended, but I want to make sure I capture your intent as well.
...-core/src/test/java/org/mockito/internal/stubbing/defaultanswers/ReturnsEmptyValuesTest.java
Show resolved
Hide resolved
sequencedCollectionClass = null; | ||
} | ||
|
||
assumeThat( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we move the assumption before looking up the class and instead check it with the Java version? So the assumption checks that the Java version is at least 21 and then we do the class lookup. If we can't find the class, we throw an error to fail the test (you can add throws to the test method)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@TimvdLippe Thanks for the feedback. I've pushed the requested changes. Please take another look.
Signed-off-by: BeomSeogKim <kbs4520@daum.net>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you!
| Package | Type | Package file | Manager | Update | Change | |---|---|---|---|---|---| | [org.mockito:mockito-core](https://github.com/mockito/mockito) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `5.19.0` -> `5.20.0` | | [io.modelcontextprotocol:kotlin-sdk-server](https://github.com/modelcontextprotocol/kotlin-sdk) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `0.7.1` -> `0.7.2` | | [io.modelcontextprotocol:kotlin-sdk-core](https://github.com/modelcontextprotocol/kotlin-sdk) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `0.7.1` -> `0.7.2` | | [io.modelcontextprotocol:kotlin-sdk-client](https://github.com/modelcontextprotocol/kotlin-sdk) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `0.7.0` -> `0.7.2` | | [com.google.errorprone:error_prone_annotations](https://errorprone.info) ([source](https://github.com/google/error-prone)) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `2.41.0` -> `2.42.0` | | [software.amazon.awssdk:sdk-core](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `2.33.13` -> `2.34.0` | | [software.amazon.awssdk:sqs](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `2.33.13` -> `2.34.0` | | [software.amazon.awssdk:s3](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `2.33.13` -> `2.34.0` | | [software.amazon.awssdk:regions](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `2.33.13` -> `2.34.0` | | [software.amazon.awssdk:dynamodb-enhanced](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `2.33.13` -> `2.34.0` | | [software.amazon.awssdk:dynamodb](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `2.33.13` -> `2.34.0` | | [software.amazon.awssdk:aws-core](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `2.33.13` -> `2.34.0` | | [software.amazon.awssdk:bom](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `2.33.13` -> `2.34.0` | | [software.amazon.awssdk:auth](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `2.33.13` -> `2.34.0` | --- ### Release Notes <details> <summary>mockito/mockito (org.mockito:mockito-core)</summary> ### [`v5.20.0`](https://github.com/mockito/mockito/releases/tag/v5.20.0) <sup><sup>*Changelog generated by [Shipkit Changelog Gradle Plugin](https://github.com/shipkit/shipkit-changelog)*</sup></sup> ##### 5.20.0 - 2025-09-20 - [11 commit(s)](mockito/mockito@v5.19.0...v5.20.0) by Adrian-Kim, Giulio Longfils, Rafael Winterhalter, dependabot\[bot] - Bump org.assertj:assertj-core from 3.27.4 to 3.27.5 [(#​3730)](mockito/mockito#3730) - Introducing the Ability to Mock Construction of Generic Types ([#​2401](mockito/mockito#2401)) [(#​3729)](mockito/mockito#3729) - Bump com.gradle.develocity from 4.1.1 to 4.2 [(#​3726)](mockito/mockito#3726) - Bump graalvm/setup-graalvm from 1.3.6 to 1.3.7 [(#​3725)](mockito/mockito#3725) - Bump org.eclipse.platform:org.eclipse.osgi from 3.23.100 to 3.23.200 [(#​3720)](mockito/mockito#3720) - Bump graalvm/setup-graalvm from 1.3.5 to 1.3.6 [(#​3719)](mockito/mockito#3719) - Bump actions/setup-java from 4 to 5 [(#​3715)](mockito/mockito#3715) - Bump com.gradle.develocity from 4.1 to 4.1.1 [(#​3713)](mockito/mockito#3713) - Bump bytebuddy from 1.17.6 to 1.17.7 [(#​3712)](mockito/mockito#3712) - test: Use Assume.assumeThat for SequencedCollection tests [(#​3711)](mockito/mockito#3711) - Fix [#​3709](mockito/mockito#3709) [(#​3710)](mockito/mockito#3710) - feat: Add support for JDK21 Sequenced Collections. [(#​3708)](mockito/mockito#3708) - Introducing the Ability to Mock Construction of Generic Types [(#​2401)](mockito/mockito#2401) </details> <details> <summary>modelcontextprotocol/kotlin-sdk (io.modelcontextprotocol:kotlin-sdk-server)</summary> ### [`v0.7.2`](https://github.com/modelcontextprotocol/kotlin-sdk/releases/tag/0.7.2) [Compare Source](modelcontextprotocol/kotlin-sdk@0.7.1...0.7.2) ##### What's Changed - migration from `jreleaser` to `mavenPublish` plugin by [@​devcrocod](https://github.com/devcrocod) in [#​277](modelcontextprotocol/kotlin-sdk#277) - Generate test report by [@​kpavlov](https://github.com/kpavlov) in [#​271](modelcontextprotocol/kotlin-sdk#271) - Move `generateLibVersion` task to `kotlin-sdk-core` by [@​devcrocod](https://github.com/devcrocod) in [#​274](modelcontextprotocol/kotlin-sdk#274) - [#​196](modelcontextprotocol/kotlin-sdk#196) Update build configuration and workflows for enhanced local publ… by [@​kpavlov](https://github.com/kpavlov) in [#​275](modelcontextprotocol/kotlin-sdk#275) - Add Stdio coverage for integration tests by [@​skarpovdev](https://github.com/skarpovdev) in [#​276](modelcontextprotocol/kotlin-sdk#276) - Bump io.kotest:kotest-assertions-json from 5.9.1 to 6.0.3 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​247](modelcontextprotocol/kotlin-sdk#247) - migration from `jreleaser` to `mavenPublish` plugin by [@​devcrocod](https://github.com/devcrocod) in [#​277](modelcontextprotocol/kotlin-sdk#277) **Full Changelog**: <modelcontextprotocol/kotlin-sdk@0.7.1...0.7.2> </details> <details> <summary>google/error-prone (com.google.errorprone:error_prone_annotations)</summary> ### [`v2.42.0`](https://github.com/google/error-prone/releases/tag/v2.42.0): Error Prone 2.42.0 New checks: - [`ExplicitArrayForVarargs`](https://errorprone.info/bugpattern/ExplicitArrayForVarargs): discourage unnecessary explicit construction of an array to provide varargs. - [`FloggerPerWithoutRateLimit`](https://errorprone.info/bugpattern/FloggerPerWithoutRateLimit): discourage Flogger's `perUnique` without rate limiting - [`StringJoin`](https://errorprone.info/bugpattern/StringJoin): Ban `String.join(CharSequence)` and `String.join(CharSequence, CharSequence)` - [`ThreadBuilderNameWithPlaceholder`](https://errorprone.info/bugpattern/ThreadBuilderNameWithPlaceholder): Do not allow placeholders in `Thread.Builder.name(String)` or `name(String, int)`. Changes: - The return type of `ASTHelpers.asFlagSet` has changed. The previous type was `EnumSet<Flags.Flag>`, where `Flags.Flag` is an enum in the javac class `Flags`. A recent JDK change has replaced that enum with a new top-level enum called `FlagsEnum`. It is not possible to change `ASTHelpers.asFlagSet` in a way that would be type-safe and compatible with the enums from JDKs both before and after the change. Instead, the method now returns `ImmutableSet<String>`, where the strings come from the `toString()` of the enum constants. That means they are `"native"`, `"abstract"`, etc. - Flag `IO.print[ln]()` in [`SystemOut`](https://errorprone.info/bugpattern/SystemOut). Full changelog: <google/error-prone@v2.41.0...v2.42.0> </details> --- ### Configuration 📅 **Schedule**: Branch creation - "after 6pm every weekday,before 2am every weekday" in timezone Australia/Melbourne, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Never, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). GitOrigin-RevId: 8ecb809cff408a555b4ee0773a9fb8cdca50b95c
This is a follow-up to the discussion in PR #3708
Description
As suggested by @TimvdLippe in the original PR, this change refactors the test for JDK 21's
SequencedCollection
to use the project's standardAssume.assumeThat
utility for conditional execution.The previous implementation used a custom helper method
getClassOrSkipTest
to check for the presence of the class.This PR replaces that logic with an explicit check for the Java version, ensuring the test only runs on JDK 21 or newer.
Key Changes
getClassOrSkipTest
call with anAssume.assumeThat
check on the Java version.Checklist
including project members to get a better picture of the change
commit is meaningful and help the people that will explore a change in 2 years
./gradlew spotlessApply
for auto-formatting)Fixes #<issue number>
in the description if relevantFixes #<issue number>
if relevant