Skip to content

Support textBlock attribute in CsvSourceToValueSource#989

Merged
timtebeek merged 3 commits into
mainfrom
tim/issue-985
May 5, 2026
Merged

Support textBlock attribute in CsvSourceToValueSource#989
timtebeek merged 3 commits into
mainfrom
tim/issue-985

Conversation

@timtebeek

@timtebeek timtebeek commented May 4, 2026

Copy link
Copy Markdown
Member

Summary

  • Convert @CsvSource(textBlock = """...""") with a single-column parameter into @ValueSource(...), splitting on newlines and ignoring # comments and blank lines per JUnit's textBlock semantics.

  • Skip when the text block has multiple CSV columns, or when non-String values contain whitespace that would produce invalid Java.

  • Adds a String case to the @ValueSource builder so text-block-derived values render as @ValueSource(strings = {...}).

  • Resolves Preserve comments at csvsourcetovaluesource / support """ at conversion #985

Test plan

  • ./gradlew test --tests CsvSourceToValueSourceTest
  • ./gradlew test --tests "org.openrewrite.java.testing.junit5.*"

timtebeek added 2 commits May 4, 2026 21:35
Single quote is CsvSource's default quote character, so converting
'apple' to a ValueSource string literal would change the parsed value.
Replaces three local helpers with `StringUtils.containsWhitespace` for
the whitespace check and inline `String#indexOf` calls for the single-
character checks.
@timtebeek timtebeek merged commit 9104c05 into main May 5, 2026
1 check passed
@github-project-automation github-project-automation Bot moved this from In Progress to Done in OpenRewrite May 5, 2026
@timtebeek timtebeek deleted the tim/issue-985 branch May 5, 2026 09:48
mergify Bot added a commit to robfrank/linklift that referenced this pull request Jun 4, 2026
…rom 3.35.2 to 3.37.0 [skip ci]

Bumps [org.openrewrite.recipe:rewrite-testing-frameworks](https://github.com/openrewrite/rewrite-testing-frameworks) from 3.35.2 to 3.37.0.
Release notes

*Sourced from [org.openrewrite.recipe:rewrite-testing-frameworks's releases](https://github.com/openrewrite/rewrite-testing-frameworks/releases).*

> 3.37.0
> ------
>
> What's Changed
> --------------
>
> * Reuse `MockedStatic` for consecutive stubbings of the same class by [`@​timtebeek`](https://github.com/timtebeek) in [openrewrite/rewrite-testing-frameworks#1005](https://redirect.github.com/openrewrite/rewrite-testing-frameworks/pull/1005)
> * Add RemoveJupiterMigrationSupport recipe by [`@​sullis`](https://github.com/sullis) in [openrewrite/rewrite-testing-frameworks#1006](https://redirect.github.com/openrewrite/rewrite-testing-frameworks/pull/1006)
> * Regenerate recipes.csv by [`@​timtebeek`](https://github.com/timtebeek) in [openrewrite/rewrite-testing-frameworks#1007](https://redirect.github.com/openrewrite/rewrite-testing-frameworks/pull/1007)
> * fix: retain doNothing() stubs inside lambda bodies to prevent uncompilable code by [`@​darrencilia`](https://github.com/darrencilia) in [openrewrite/rewrite-testing-frameworks#1009](https://redirect.github.com/openrewrite/rewrite-testing-frameworks/pull/1009)
> * Migrate deprecated AssertionsForClassTypes/InterfaceTypes to Assertions by [`@​timtebeek`](https://github.com/timtebeek) in [openrewrite/rewrite-testing-frameworks#1010](https://redirect.github.com/openrewrite/rewrite-testing-frameworks/pull/1010)
> * Add direct mockwebserver3 dep when only inherited from parent pom by [`@​steve-aom-elliott`](https://github.com/steve-aom-elliott) in [openrewrite/rewrite-testing-frameworks#1011](https://redirect.github.com/openrewrite/rewrite-testing-frameworks/pull/1011)
> * Match MockWebServer.shutdown() against pre-rename type by [`@​steve-aom-elliott`](https://github.com/steve-aom-elliott) in [openrewrite/rewrite-testing-frameworks#1012](https://redirect.github.com/openrewrite/rewrite-testing-frameworks/pull/1012)
>
> New Contributors
> ----------------
>
> * [`@​darrencilia`](https://github.com/darrencilia) made their first contribution in [openrewrite/rewrite-testing-frameworks#1009](https://redirect.github.com/openrewrite/rewrite-testing-frameworks/pull/1009)
>
> **Full Changelog**: <openrewrite/rewrite-testing-frameworks@v3.36.0...v3.37.0>
>
> 3.36.0
> ------
>
> What's Changed
> --------------
>
> * Skip wrapper-primitive in `UseAssertSame`; rewrite via `AssertTrueComparisonToAssertEquals` by [`@​motlin`](https://github.com/motlin) in [openrewrite/rewrite-testing-frameworks#995](https://redirect.github.com/openrewrite/rewrite-testing-frameworks/pull/995)
> * Add unit test for JUnit6BestPractices by [`@​sullis`](https://github.com/sullis) in [openrewrite/rewrite-testing-frameworks#994](https://redirect.github.com/openrewrite/rewrite-testing-frameworks/pull/994)
> * Cleanup junit vintage engine by [`@​sullis`](https://github.com/sullis) in [openrewrite/rewrite-testing-frameworks#993](https://redirect.github.com/openrewrite/rewrite-testing-frameworks/pull/993)
> * OpenRewrite recipe best practices by [`@​timtebeek`](https://github.com/timtebeek) in [openrewrite/rewrite-testing-frameworks#997](https://redirect.github.com/openrewrite/rewrite-testing-frameworks/pull/997)
> * Fix `JUnit4to5Migration` for classes that extend `org.junit.Assert` by [`@​motlin`](https://github.com/motlin) in [openrewrite/rewrite-testing-frameworks#996](https://redirect.github.com/openrewrite/rewrite-testing-frameworks/pull/996)
> * Preserve newlines when converting `@CsvSource(textBlock = ...)` to `@ValueSource` by [`@​timtebeek`](https://github.com/timtebeek) in [openrewrite/rewrite-testing-frameworks#998](https://redirect.github.com/openrewrite/rewrite-testing-frameworks/pull/998)
> * Fix `EnclosedToNested` failing with "Expected to find enclosing JavaSourceFile" by [`@​timtebeek`](https://github.com/timtebeek) in [openrewrite/rewrite-testing-frameworks#1001](https://redirect.github.com/openrewrite/rewrite-testing-frameworks/pull/1001)
> * Fix `assertEquals` delta misinterpreted as message in AssertJ conversion by [`@​timtebeek`](https://github.com/timtebeek) in [openrewrite/rewrite-testing-frameworks#1000](https://redirect.github.com/openrewrite/rewrite-testing-frameworks/pull/1000)
> * Add JUnit 6.1 migration recipes by [`@​timtebeek`](https://github.com/timtebeek) in [openrewrite/rewrite-testing-frameworks#1002](https://redirect.github.com/openrewrite/rewrite-testing-frameworks/pull/1002)
> * Handle Kotlin sources in `MockitoWhenOnStaticToMockStatic` by [`@​MBoegers`](https://github.com/MBoegers) in [openrewrite/rewrite-testing-frameworks#1003](https://redirect.github.com/openrewrite/rewrite-testing-frameworks/pull/1003)
>
> **Full Changelog**: <openrewrite/rewrite-testing-frameworks@v3.35.3...v3.36.0>
>
> v3.35.3
> -------
>
> What's Changed
> --------------
>
> * OpenRewrite [v8.81.6](https://github.com/openrewrite/rewrite/releases/tag/v8.81.6)
> * Cleanup Mockito AutoCloseable fields by [`@​sullis`](https://github.com/sullis) in [openrewrite/rewrite-testing-frameworks#977](https://redirect.github.com/openrewrite/rewrite-testing-frameworks/pull/977)
> * Preserve mockStatic when returned from helper methods by [`@​timtebeek`](https://github.com/timtebeek) in [openrewrite/rewrite-testing-frameworks#979](https://redirect.github.com/openrewrite/rewrite-testing-frameworks/pull/979)
> * Upgrade junit-bom to 6.x in JUnit 5 to 6 migration by [`@​timtebeek`](https://github.com/timtebeek) in [openrewrite/rewrite-testing-frameworks#978](https://redirect.github.com/openrewrite/rewrite-testing-frameworks/pull/978)
> * Tighten PowerMockitoMockStaticToMockito precondition to actual PowerMockito usage by [`@​timtebeek`](https://github.com/timtebeek) in [openrewrite/rewrite-testing-frameworks#981](https://redirect.github.com/openrewrite/rewrite-testing-frameworks/pull/981)
> * Fix AssertTrueInstanceofToAssertInstanceOf static import by [`@​timtebeek`](https://github.com/timtebeek) in [openrewrite/rewrite-testing-frameworks#984](https://redirect.github.com/openrewrite/rewrite-testing-frameworks/pull/984)
> * Fix `ClassCastException` for `@PrepareForTest(fullyQualifiedNames = "...")` by [`@​timtebeek`](https://github.com/timtebeek) in [openrewrite/rewrite-testing-frameworks#983](https://redirect.github.com/openrewrite/rewrite-testing-frameworks/pull/983)
> * Preserve `doNothing()` stubbings using `ArgumentCaptor.capture()` by [`@​timtebeek`](https://github.com/timtebeek) in [openrewrite/rewrite-testing-frameworks#988](https://redirect.github.com/openrewrite/rewrite-testing-frameworks/pull/988)
> * Document strictness implication of `RemoveInitMocksIfRunnersSpecified` by [`@​timtebeek`](https://github.com/timtebeek) in [openrewrite/rewrite-testing-frameworks#990](https://redirect.github.com/openrewrite/rewrite-testing-frameworks/pull/990)
> * Support `textBlock` attribute in `CsvSourceToValueSource` by [`@​timtebeek`](https://github.com/timtebeek) in [openrewrite/rewrite-testing-frameworks#989](https://redirect.github.com/openrewrite/rewrite-testing-frameworks/pull/989)
> * Skip primitive comparisons in `UseAssertSame` by [`@​timtebeek`](https://github.com/timtebeek) in [openrewrite/rewrite-testing-frameworks#992](https://redirect.github.com/openrewrite/rewrite-testing-frameworks/pull/992)
>
> **Full Changelog**: <openrewrite/rewrite-testing-frameworks@v3.35.2...v3.35.3>


Commits

* [`5b719c2`](openrewrite/rewrite-testing-frameworks@5b719c2) Extract documentation examples from tests
* [`1ca6223`](openrewrite/rewrite-testing-frameworks@1ca6223) Match MockWebServer.shutdown() against pre-rename type ([#1012](https://redirect.github.com/openrewrite/rewrite-testing-frameworks/issues/1012))
* [`9479988`](openrewrite/rewrite-testing-frameworks@9479988) Add direct mockwebserver3 dep when only old mockwebserver dep inherited from ...
* [`4d31fbb`](openrewrite/rewrite-testing-frameworks@4d31fbb) Add recipe to migrate AssertionsForClassTypes/InterfaceTypes to Assertions (#...
* [`7cbff2a`](openrewrite/rewrite-testing-frameworks@7cbff2a) OpenRewrite recipe best practices
* [`86f2308`](openrewrite/rewrite-testing-frameworks@86f2308) fix: retain doNothing() stubs inside lambda bodies to prevent uncompilable co...
* [`45d2528`](openrewrite/rewrite-testing-frameworks@45d2528) Update Gradle wrapper 9.5.1
* [`a632e17`](openrewrite/rewrite-testing-frameworks@a632e17) Regenerate recipes.csv ([#1007](https://redirect.github.com/openrewrite/rewrite-testing-frameworks/issues/1007))
* [`0b192ca`](openrewrite/rewrite-testing-frameworks@0b192ca) Add RemoveJupiterMigrationSupport recipe ([#1006](https://redirect.github.com/openrewrite/rewrite-testing-frameworks/issues/1006))
* [`f3f61a6`](openrewrite/rewrite-testing-frameworks@f3f61a6) Reuse `MockedStatic` for consecutive stubbings of the same class ([#1005](https://redirect.github.com/openrewrite/rewrite-testing-frameworks/issues/1005))
* Additional commits viewable in [compare view](openrewrite/rewrite-testing-frameworks@v3.35.2...v3.37.0)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

Preserve comments at csvsourcetovaluesource / support """ at conversion

1 participant