Skip to content

test: migrate third extensions-contrib batch to JUnit 5 - #19916

Open
FrankChen021 wants to merge 2 commits into
apache:masterfrom
FrankChen021:codex/junit5-migrate-contrib-batch-3
Open

test: migrate third extensions-contrib batch to JUnit 5#19916
FrankChen021 wants to merge 2 commits into
apache:masterfrom
FrankChen021:codex/junit5-migrate-contrib-batch-3

Conversation

@FrankChen021

Copy link
Copy Markdown
Member

Part of #13948.

Summary

This PR migrates an independent extensions-contrib batch to JUnit 5:

  • druid-iceberg-extensions
  • druid-deltalake-extensions
  • consul-extensions
  • cassandra-storage (POM cleanup; no test sources)

The migrated module POMs remove direct JUnit 4/Hamcrest usage and use Jupiter where tests are present. This batch deliberately does not change the shared SQL/processing test fixtures and does not depend on #19908 or #19915. The modules that require the shared AggregationTestHelper fixture are owned by #19908 instead.

This branch is based directly on master; it is independent of the other migration PRs.

Related migration PRs: #19908, #19915, #19875, #19876, #19877, #19878, #19879, #19880, #19881, and #19882.

Validation

  • test-compile passed for all four modules and their reactor dependencies.
  • Focused tests passed: Iceberg (35), Delta Lake (82), and Consul (43); Cassandra has no tests.
  • Checkstyle passed with 0 violations for all four modules.
  • SpotBugs passed with 0 bugs/errors for all four modules.
  • No JUnit 4/Hamcrest source imports or direct POM dependencies remain in these modules.
  • git diff --check passed.

@FrankChen021
FrankChen021 marked this pull request as ready for review August 7, 2026 14:01
Copilot AI lite review requested due to automatic review settings August 7, 2026 14:01

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR continues the JUnit 4 → JUnit 5 (Jupiter) migration for an independent batch of extensions-contrib modules, updating test sources to Jupiter APIs and cleaning up module-level test dependencies to remove direct JUnit 4 / Hamcrest usage where possible.

Changes:

  • Migrates Iceberg, Delta Lake, and Consul extension test suites from JUnit 4 annotations/assertions/runners to JUnit Jupiter equivalents (including parameterized tests).
  • Introduces a small Jupiter-based DeltaAssertions test helper to replace Hamcrest-based DruidExceptionMatcher usage in Delta Lake tests.
  • Updates the affected module POMs to add Jupiter dependencies and remove direct JUnit 4 (and related) test dependencies; Cassandra POM removes unused JUnit test dependency.

Reviewed changes

Copilot reviewed 36 out of 36 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
extensions-contrib/druid-iceberg-extensions/src/test/java/org/apache/druid/iceberg/input/RestCatalogTest.java Switches lifecycle + assertions to Jupiter.
extensions-contrib/druid-iceberg-extensions/src/test/java/org/apache/druid/iceberg/input/ResidualFilterModeTest.java Migrates assertions/throws to Jupiter.
extensions-contrib/druid-iceberg-extensions/src/test/java/org/apache/druid/iceberg/input/LocalCatalogTest.java Migrates assertions to Jupiter.
extensions-contrib/druid-iceberg-extensions/src/test/java/org/apache/druid/iceberg/input/IcebergInputSourceTest.java Replaces JUnit4 rule/lifecycle/assertions with Jupiter equivalents.
extensions-contrib/druid-iceberg-extensions/src/test/java/org/apache/druid/iceberg/input/HiveIcebergCatalogTest.java Migrates assertions to Jupiter.
extensions-contrib/druid-iceberg-extensions/src/test/java/org/apache/druid/iceberg/input/GlueIcebergCatalogTest.java Migrates assertions to Jupiter.
extensions-contrib/druid-iceberg-extensions/src/test/java/org/apache/druid/iceberg/filter/IcebergTimeWindowFilterTest.java Migrates assertions to Jupiter.
extensions-contrib/druid-iceberg-extensions/src/test/java/org/apache/druid/iceberg/filter/IcebergRangeFilterTest.java Migrates assertions to Jupiter.
extensions-contrib/druid-iceberg-extensions/src/test/java/org/apache/druid/iceberg/filter/IcebergOrFilterTest.java Migrates assertions/throws to Jupiter.
extensions-contrib/druid-iceberg-extensions/src/test/java/org/apache/druid/iceberg/filter/IcebergNotFilterTest.java Migrates assertions to Jupiter.
extensions-contrib/druid-iceberg-extensions/src/test/java/org/apache/druid/iceberg/filter/IcebergIntervalFilterTest.java Migrates assertions to Jupiter.
extensions-contrib/druid-iceberg-extensions/src/test/java/org/apache/druid/iceberg/filter/IcebergEqualsFilterTest.java Migrates assertions to Jupiter.
extensions-contrib/druid-iceberg-extensions/src/test/java/org/apache/druid/iceberg/filter/IcebergAndFilterTest.java Migrates assertions/throws to Jupiter.
extensions-contrib/druid-iceberg-extensions/pom.xml Adds Jupiter deps; removes direct JUnit4 dependency.
extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/input/DeltaTimeUtilsTest.java Migrates lifecycle/assertions to Jupiter.
extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/input/DeltaInputSourceTest.java Converts JUnit4 parameterized runner usage to Jupiter parameterized tests + nested structure.
extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/input/DeltaInputSourceSerdeTest.java Migrates assertions/throws to Jupiter.
extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/input/DeltaInputRowTest.java Migrates assertions; replaces Hamcrest matcher use with DeltaAssertions.
extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/filter/DeltaOrFilterTest.java Migrates assertions; replaces Hamcrest matcher use with DeltaAssertions.
extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/filter/DeltaNotFilterTest.java Migrates assertions; replaces Hamcrest matcher use with DeltaAssertions.
extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/filter/DeltaLessThanOrEqualsFilterTest.java Migrates assertions; replaces Hamcrest matcher use with DeltaAssertions.
extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/filter/DeltaLessThanFilterTest.java Migrates assertions to Jupiter.
extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/filter/DeltaGreaterThanOrEqualsFilterTest.java Migrates assertions to Jupiter.
extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/filter/DeltaGreaterThanFilterTest.java Migrates assertions to Jupiter.
extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/filter/DeltaEqualsFilterTest.java Migrates assertions; replaces Hamcrest matcher use with DeltaAssertions.
extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/filter/DeltaAndFilterTest.java Migrates assertions; replaces Hamcrest matcher use with DeltaAssertions.
extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/DeltaAssertions.java Adds a small Jupiter-based assertion helper for INVALID_INPUT exceptions.
extensions-contrib/druid-deltalake-extensions/pom.xml Adds Jupiter deps; removes JUnit4/Vintage/migrationsupport and Hamcrest deps.
extensions-contrib/consul-extensions/src/test/java/org/apache/druid/consul/discovery/ConsulServiceIdsTest.java Migrates assertions to Jupiter.
extensions-contrib/consul-extensions/src/test/java/org/apache/druid/consul/discovery/ConsulLeaderSelectorTest.java Migrates lifecycle/assertions to Jupiter.
extensions-contrib/consul-extensions/src/test/java/org/apache/druid/consul/discovery/ConsulDruidNodeDiscoveryProviderTest.java Migrates lifecycle/assertions to Jupiter.
extensions-contrib/consul-extensions/src/test/java/org/apache/druid/consul/discovery/ConsulDruidNodeAnnouncerTest.java Removes JUnit4 runner; migrates lifecycle/assertions to Jupiter.
extensions-contrib/consul-extensions/src/test/java/org/apache/druid/consul/discovery/ConsulDiscoveryConfigTest.java Migrates assertions/expected-exception patterns to Jupiter assertThrows.
extensions-contrib/consul-extensions/src/test/java/org/apache/druid/consul/discovery/ConsulClientsSecurityTest.java Migrates assertions/throws to Jupiter.
extensions-contrib/consul-extensions/pom.xml Adds Jupiter deps; removes direct JUnit4 dependency.
extensions-contrib/cassandra-storage/pom.xml Removes unused JUnit4 test dependency from module POM.
Suppressed comments (1)

extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/input/DeltaInputSourceTest.java:191

  • FilterParameterTests is a non-static @Nested inner class, but it declares public static Object[][] data(). This is illegal in Java for non-static inner classes and will prevent compilation. Make the method non-static and use a per-class test instance (or move the method to the enclosing class and reference it via @MethodSource).
  @Nested
  public class FilterParameterTests
  {
    public static Object[][] data()
    {

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@FrankChen021 FrankChen021 left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Severity Findings
P0 0
P1 0
P2 1
P3 0
Total 1

Reviewed 36 of 36 changed files. The migration is otherwise mechanical, but the new Delta assertion helper weakens existing exception-contract coverage.


This is an automated review by Codex GPT-5.6-Luna(max)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants