You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by le...@apache.org on 2023/11/10 07:06:37 UTC
(flink) branch master updated (7542b56f2ab -> cdb759b0ecd)
This is an automated email from the ASF dual-hosted git repository.
leonard pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/flink.git
from 7542b56f2ab [FLINK-33469] Implement restore tests for Limit node (#23675)
new 722e638924b [FLINK-33023][table-planner][JUnit5 Migration] Module: flink-table-planner/planner/utils (TableTestBase)
new bf6afc3d52e [FLINK-33023][table-planner][JUnit5 Migration] Module: flink-table-planner/api (TableTestBase)
new 4cd8285274a [FLINK-33023][table-planner][JUnit5 Migration] Module: flink-connectors/flink-connector-hive (TableTestBase)
new 6564bccbcb2 [FLINK-33023][table-planner][JUnit5 Migration] Module: flink-table-planner/connector (TableTestBase)
new f44b6764cbd [FLINK-33023][table-planner][JUnit5 Migration] Module: flink-table-planner/planner/alias (TableTestBase)
new b9923dee789 [FLINK-33023][table-planner][JUnit5 Migration] Module: flink-table-planner/planner/analyze (TableTestBase)
new 1fbe223a5d7 [FLINK-33023][table-planner][JUnit5 Migration] Module: flink-table-planner/planner/catalog,expressions,runtime (TableTestBase)
new cdb759b0ecd [FLINK-33023][table-planner][JUnit5 Migration] Module: flink-table-planner/planner/plan (TableTestBase)
The 8 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.../connectors/hive/HiveTemporalJoinITCase.java | 49 +-
.../file/table/FileSystemTableSourceTest.java | 14 +-
.../validation/MatchRecognizeValidationTest.java | 188 +--
...rJoinHintWithCapitalizeJoinHintShuttleTest.java | 14 +-
...rJoinHintWithInvalidPropagationShuttleTest.java | 12 +-
...nHintWithInvalidPropagationShuttleTestBase.java | 8 +-
...pJoinHintWithInvalidPropagationShuttleTest.java | 18 +-
.../analyze/GroupAggregationAnalyzerTest.java | 56 +-
.../NonDeterministicUpdateAnalyzerTest.java | 24 +-
.../planner/catalog/JavaCatalogTableTest.java | 34 +-
.../planner/plan/batch/sql/CalcMergeTest.java | 2 +-
.../plan/batch/sql/DynamicFilteringTest.java | 47 +-
.../plan/batch/sql/DynamicFunctionPlanTest.java | 2 +-
.../plan/batch/sql/ForwardHashExchangeTest.java | 52 +-
.../planner/plan/batch/sql/MatchRecognizeTest.java | 18 +-
.../planner/plan/batch/sql/RowLevelDeleteTest.java | 43 +-
.../planner/plan/batch/sql/RowLevelUpdateTest.java | 66 +-
.../planner/plan/batch/sql/TimeTravelTest.java | 30 +-
.../planner/plan/common/CalcMergeTestBase.java | 26 +-
.../plan/common/DynamicFunctionPlanTestBase.java | 16 +-
.../plan/hints/batch/BroadcastJoinHintTest.java | 2 +-
.../planner/plan/hints/batch/JoinHintTestBase.java | 208 +--
.../plan/hints/batch/NestLoopJoinHintTest.java | 2 +-
.../plan/hints/batch/ShuffleHashJoinHintTest.java | 2 +-
.../plan/hints/batch/ShuffleMergeJoinHintTest.java | 2 +-
.../nodes/exec/UnsupportedNodesInPlanTest.java | 6 +-
.../nodes/exec/operator/BatchOperatorNameTest.java | 52 +-
.../nodes/exec/operator/OperatorNameTestBase.java | 44 +-
.../exec/operator/StreamOperatorNameTest.java | 86 +-
.../MultipleInputNodeCreationProcessorTest.java | 15 +-
.../plan/nodes/exec/stream/CalcJsonPlanTest.java | 20 +-
.../exec/stream/ChangelogSourceJsonPlanTest.java | 14 +-
.../nodes/exec/stream/CorrelateJsonPlanTest.java | 24 +-
.../exec/stream/DeduplicationJsonPlanTest.java | 12 +-
.../plan/nodes/exec/stream/ExpandJsonPlanTest.java | 12 +-
.../exec/stream/GroupAggregateJsonPlanTest.java | 40 +-
.../stream/GroupWindowAggregateJsonPlanTest.java | 22 +-
.../stream/IncrementalAggregateJsonPlanTest.java | 14 +-
.../exec/stream/IntervalJoinJsonPlanTest.java | 14 +-
.../plan/nodes/exec/stream/JoinJsonPlanTest.java | 18 +-
.../nodes/exec/stream/LookupJoinJsonPlanTest.java | 34 +-
.../exec/stream/MatchRecognizeJsonPlanTest.java | 20 +-
.../exec/stream/OverAggregateJsonPlanTest.java | 24 +-
.../nodes/exec/stream/PythonCalcJsonPlanTest.java | 14 +-
.../exec/stream/PythonCorrelateJsonPlanTest.java | 14 +-
.../stream/PythonGroupAggregateJsonPlanTest.java | 12 +-
.../PythonGroupWindowAggregateJsonPlanTest.java | 22 +-
.../stream/PythonOverAggregateJsonPlanTest.java | 20 +-
.../plan/nodes/exec/stream/RankJsonPlanTest.java | 12 +-
.../plan/nodes/exec/stream/SortJsonPlanTest.java | 12 +-
.../nodes/exec/stream/SortLimitJsonPlanTest.java | 12 +-
.../nodes/exec/stream/TableSinkJsonPlanTest.java | 20 +-
.../nodes/exec/stream/TableSourceJsonPlanTest.java | 24 +-
.../exec/stream/TemporalJoinJsonPlanTest.java | 14 +-
.../exec/stream/TemporalSortJsonPlanTest.java | 14 +-
.../plan/nodes/exec/stream/UnionJsonPlanTest.java | 12 +-
.../plan/nodes/exec/stream/ValuesJsonPlanTest.java | 12 +-
.../exec/stream/WatermarkAssignerJsonPlanTest.java | 12 +-
.../exec/stream/WindowAggregateJsonPlanTest.java | 30 +-
.../nodes/exec/stream/WindowJoinJsonPlanTest.java | 12 +-
.../stream/WindowTableFunctionJsonPlanTest.java | 20 +-
.../optimize/ClearQueryBlockAliasResolverTest.java | 2 +-
.../table/planner/plan/optimize/ScanReuseTest.java | 125 +-
.../DynamicPartitionPruningProgramTest.java | 91 +-
.../program/FlinkRuntimeFilterProgramTest.java | 60 +-
.../rules/logical/FlinkFilterJoinRuleTest.java | 116 +-
.../logical/ProjectSnapshotTransposeRuleTest.java | 40 +-
.../ProjectWatermarkAssignerTransposeRuleTest.java | 32 +-
.../PushFilterInCalcIntoTableSourceRuleTest.java | 17 +-
.../PushFilterIntoTableSourceScanRuleTest.java | 25 +-
.../PushFilterIntoTableSourceScanRuleTestBase.java | 44 +-
.../PushLimitIntoTableSourceScanRuleTest.java | 6 +-
.../PushPartitionIntoTableSourceScanRuleTest.java | 13 +-
.../PushProjectIntoTableSourceScanRuleTest.java | 44 +-
.../PushWatermarkIntoTableSourceScanRuleTest.java | 40 +-
...RemoveUnreachableCoalesceArgumentsRuleTest.java | 24 +-
.../WrapJsonAggFunctionArgumentsRuleTest.java | 63 +-
.../PushLocalAggIntoTableSourceScanRuleTest.java | 44 +-
.../PushCalcPastChangelogNormalizeRuleTest.java | 22 +-
.../planner/plan/stream/sql/CalcMergeTest.java | 2 +-
.../plan/stream/sql/DynamicFunctionPlanTest.java | 2 +-
.../plan/stream/sql/InsertIntoValuesTest.java | 6 +-
.../plan/stream/sql/LegacyTableFactoryTest.java | 10 +-
.../planner/plan/stream/sql/NullTypeTest.java | 79 +-
.../planner/plan/stream/table/ValuesTest.java | 90 +-
.../runtime/batch/ParallelismSettingTest.java | 20 +-
.../planner/utils/InternalConfigOptionsTest.java | 28 +-
.../planner/plan/common/ViewsExpandingTest.xml | 20 +-
.../table/planner/plan/hint/OptionsHintTest.xml | 20 +-
.../apache/flink/table/api/batch/ExplainTest.scala | 32 +-
.../flink/table/api/stream/ExplainTest.scala | 32 +-
.../sql/validation/OverWindowValidationTest.scala | 13 +-
.../table/planner/plan/batch/sql/CalcTest.scala | 10 +-
.../plan/batch/sql/CompactManagedTableTest.scala | 6 +-
.../plan/batch/sql/DagOptimizationTest.scala | 2 +-
.../plan/batch/sql/DeadlockBreakupTest.scala | 4 +-
.../planner/plan/batch/sql/LegacyLimitTest.scala | 15 +-
.../planner/plan/batch/sql/LegacySinkTest.scala | 3 +-
.../plan/batch/sql/LegacyTableSourceTest.scala | 13 +-
.../table/planner/plan/batch/sql/LimitTest.scala | 3 +
.../plan/batch/sql/MultipleInputCreationTest.scala | 45 +-
.../plan/batch/sql/OperatorFusionCodegenTest.scala | 18 +-
.../plan/batch/sql/PartitionableSinkTest.scala | 17 +-
.../plan/batch/sql/PartitionableSourceTest.scala | 26 +-
.../table/planner/plan/batch/sql/RankTest.scala | 30 +-
.../plan/batch/sql/RemoveCollationTest.scala | 4 +-
.../planner/plan/batch/sql/RemoveShuffleTest.scala | 4 +-
.../planner/plan/batch/sql/SetOperatorsTest.scala | 27 +-
.../planner/plan/batch/sql/SortLimitTest.scala | 2 +-
.../table/planner/plan/batch/sql/SortTest.scala | 2 +-
.../planner/plan/batch/sql/SubplanReuseTest.scala | 4 +-
.../planner/plan/batch/sql/TableScanTest.scala | 43 +-
.../planner/plan/batch/sql/TableSinkTest.scala | 8 +-
.../planner/plan/batch/sql/TableSourceTest.scala | 4 +-
.../table/planner/plan/batch/sql/UnionTest.scala | 4 +-
.../table/planner/plan/batch/sql/ValuesTest.scala | 2 +-
.../plan/batch/sql/WindowTableFunctionTest.scala | 38 +-
.../plan/batch/sql/agg/AggregateTestBase.scala | 48 +-
.../plan/batch/sql/agg/GroupWindowTest.scala | 153 +--
.../plan/batch/sql/agg/GroupingSetsTest.scala | 6 +-
.../plan/batch/sql/agg/HashAggregateTest.scala | 34 +-
.../plan/batch/sql/agg/OverAggregateTest.scala | 30 +-
.../plan/batch/sql/agg/SortAggregateTest.scala | 14 +-
.../batch/sql/join/BroadcastHashJoinTest.scala | 95 +-
.../sql/join/BroadcastHashSemiAntiJoinTest.scala | 125 +-
.../plan/batch/sql/join/JoinReorderTest.scala | 6 +-
.../planner/plan/batch/sql/join/JoinTestBase.scala | 18 +-
.../plan/batch/sql/join/LookupJoinTest.scala | 108 +-
.../plan/batch/sql/join/NestedLoopJoinTest.scala | 4 +-
.../sql/join/NestedLoopSemiAntiJoinTest.scala | 4 +-
.../plan/batch/sql/join/SemiAntiJoinTest.scala | 2 +-
.../plan/batch/sql/join/SemiAntiJoinTestBase.scala | 3 +-
.../plan/batch/sql/join/ShuffledHashJoinTest.scala | 71 +-
.../sql/join/ShuffledHashSemiAntiJoinTest.scala | 113 +-
.../plan/batch/sql/join/SingleRowJoinTest.scala | 2 +-
.../plan/batch/sql/join/SortMergeJoinTest.scala | 71 +-
.../batch/sql/join/SortMergeSemiAntiJoinTest.scala | 113 +-
.../batch/sql/join/TemporalFunctionJoinTest.scala | 30 +-
.../plan/batch/sql/join/TemporalJoinTest.scala | 25 +-
.../planner/plan/batch/table/AggregateTest.scala | 2 +-
.../table/planner/plan/batch/table/CalcTest.scala | 2 +-
.../plan/batch/table/ColumnFunctionsTest.scala | 2 +-
.../planner/plan/batch/table/CorrelateTest.scala | 2 +-
.../planner/plan/batch/table/GroupWindowTest.scala | 18 +-
.../table/planner/plan/batch/table/JoinTest.scala | 18 +-
.../plan/batch/table/PythonAggregateTest.scala | 8 +-
.../planner/plan/batch/table/PythonCalcTest.scala | 4 +-
.../table/PythonGroupWindowAggregateTest.scala | 18 +-
.../table/PythonOverWindowAggregateTest.scala | 8 +-
.../plan/batch/table/SetOperatorsTest.scala | 2 +-
.../table/TemporalTableFunctionJoinTest.scala | 18 +-
.../table/validation/AggregateValidationTest.scala | 142 +-
.../table/validation/CalcValidationTest.scala | 72 +-
.../table/validation/CorrelateValidationTest.scala | 18 +-
.../validation/GroupWindowValidationTest.scala | 142 +-
.../table/validation/JoinValidationTest.scala | 79 +-
.../validation/OverWindowValidationTest.scala | 21 +-
.../validation/SetOperatorsValidationTest.scala | 38 +-
.../table/validation/SortValidationTest.scala | 18 +-
.../common/AggregateReduceGroupingTestBase.scala | 4 +-
.../plan/common/DistinctAggregateTestBase.scala | 10 +-
.../planner/plan/common/JoinReorderTestBase.scala | 58 +-
.../planner/plan/common/PartialInsertTest.scala | 78 +-
.../planner/plan/common/TableFactoryTest.scala | 19 +-
.../table/planner/plan/common/UnnestTestBase.scala | 2 +-
.../planner/plan/common/ViewsExpandingTest.scala | 57 +-
.../table/planner/plan/hint/OptionsHintTest.scala | 57 +-
.../logical/AggregateReduceGroupingRuleTest.scala | 4 +-
.../logical/CalcPruneAggregateCallRuleTest.scala | 2 +
.../CalcPythonCorrelateTransposeRuleTest.scala | 4 +-
.../rules/logical/CalcRankTransposeRuleTest.scala | 4 +-
.../rules/logical/ConvertToNotInOrInRuleTest.scala | 4 +-
.../logical/CorrelateSortToRankRuleTest.scala | 4 +-
.../logical/DecomposeGroupingSetsRuleTest.scala | 8 +-
.../logical/ExpressionReductionRulesTest.scala | 2 +-
...AggregateExpandDistinctAggregatesRuleTest.scala | 4 +-
.../FlinkAggregateJoinTransposeRuleTest.scala | 4 +-
.../logical/FlinkAggregateRemoveRuleTest.scala | 4 +-
.../rules/logical/FlinkCalcMergeRuleTest.scala | 4 +-
.../logical/FlinkJoinPushExpressionsRuleTest.scala | 4 +-
.../logical/FlinkJoinToMultiJoinRuleTest.scala | 4 +-
.../rules/logical/FlinkLimit0RemoveRuleTest.scala | 4 +-
.../FlinkLogicalRankRuleForConstantRangeTest.scala | 2 +-
.../FlinkLogicalRankRuleForRangeEndTest.scala | 9 +-
.../rules/logical/FlinkPruneEmptyRulesTest.scala | 4 +-
.../FlinkSemiAntiJoinFilterTransposeRuleTest.scala | 4 +-
.../FlinkSemiAntiJoinJoinTransposeRuleTest.scala | 4 +-
...FlinkSemiAntiJoinProjectTransposeRuleTest.scala | 4 +-
.../JoinConditionEqualityTransferRuleTest.scala | 4 +-
.../logical/JoinConditionTypeCoerceRuleTest.scala | 4 +-
.../JoinDependentConditionDerivationRuleTest.scala | 4 +-
.../logical/JoinDeriveNullFilterRuleTest.scala | 4 +-
...lCorrelateToJoinFromTemporalTableRuleTest.scala | 55 +-
.../plan/rules/logical/LogicalUnnestRuleTest.scala | 4 +-
.../ProjectPruneAggregateCallRuleTest.scala | 2 +
.../ProjectSemiAntiJoinTransposeRuleTest.scala | 4 +-
...ojectWindowTableFunctionTransposeRuleTest.scala | 4 +-
.../logical/PruneAggregateCallRuleTestBase.scala | 4 +-
...shFilterIntoLegacyTableSourceScanRuleTest.scala | 4 +-
...ushLimitIntoLegacyTableSourceScanRuleTest.scala | 20 +-
...artitionIntoLegacyTableSourceScanRuleTest.scala | 48 +-
...hProjectIntoLegacyTableSourceScanRuleTest.scala | 4 +-
.../rules/logical/PythonCalcSplitRuleTest.scala | 4 +-
.../logical/PythonCorrelateSplitRuleTest.scala | 4 +-
.../rules/logical/PythonMapMergeRuleTest.scala | 4 +-
.../logical/RankNumberColumnRemoveRuleTest.scala | 4 +-
.../logical/RemoveSingleAggregateRuleTest.scala | 4 +-
.../ReplaceIntersectWithSemiJoinRuleTest.scala | 4 +-
.../logical/ReplaceMinusWithAntiJoinRuleTest.scala | 4 +-
.../logical/RewriteIntersectAllRuleTest.scala | 4 +-
.../rules/logical/RewriteMinusAllRuleTest.scala | 4 +-
.../RewriteMultiJoinConditionRuleTest.scala | 4 +-
.../logical/SimplifyFilterConditionRuleTest.scala | 4 +-
.../logical/SimplifyJoinConditionRuleTest.scala | 4 +-
.../rules/logical/SplitAggregateRuleTest.scala | 2 +-
...SplitPythonConditionFromCorrelateRuleTest.scala | 4 +-
.../SplitPythonConditionFromJoinRuleTest.scala | 4 +-
.../TemporalJoinRewriteWithUniqueKeyRuleTest.scala | 64 +-
.../rules/logical/WindowGroupReorderRuleTest.scala | 4 +-
.../subquery/FlinkRewriteSubQueryRuleTest.scala | 4 +-
.../logical/subquery/SubQueryAntiJoinTest.scala | 36 +-
.../logical/subquery/SubQuerySemiJoinTest.scala | 164 +--
.../SubqueryCorrelateVariablesValidationTest.scala | 23 +-
.../batch/EnforceLocalAggRuleTestBase.scala | 4 +-
.../batch/EnforceLocalHashAggRuleTest.scala | 4 +-
.../batch/EnforceLocalSortAggRuleTest.scala | 4 +-
.../RemoveRedundantLocalHashAggRuleTest.scala | 4 +-
.../batch/RemoveRedundantLocalRankRuleTest.scala | 4 +-
.../RemoveRedundantLocalSortAggRuleTest.scala | 4 +-
.../stream/ChangelogModeInferenceTest.scala | 4 +-
...xpandWindowTableFunctionTransposeRuleTest.scala | 4 +-
...signerChangelogNormalizeTransposeRuleTest.scala | 4 +-
.../table/planner/plan/stream/sql/CalcTest.scala | 10 +-
.../plan/stream/sql/DagOptimizationTest.scala | 2 +-
.../planner/plan/stream/sql/DeduplicateTest.scala | 4 +-
.../plan/stream/sql/FilterableSourceTest.scala | 4 +-
.../planner/plan/stream/sql/LegacySinkTest.scala | 18 +-
.../plan/stream/sql/LegacyTableSourceTest.scala | 4 +-
.../table/planner/plan/stream/sql/LimitTest.scala | 15 +-
.../plan/stream/sql/LimitableSourceTest.scala | 4 +-
.../plan/stream/sql/MatchRecognizeTest.scala | 52 +-
.../stream/sql/MiniBatchIntervalInferTest.scala | 4 +-
.../plan/stream/sql/ModifiedMonotonicityTest.scala | 6 +-
.../plan/stream/sql/NonDeterministicDagTest.scala | 1384 +++++++++++---------
.../plan/stream/sql/PartitionableSinkTest.scala | 17 +-
.../plan/stream/sql/PartitionableSourceTest.scala | 26 +-
.../table/planner/plan/stream/sql/RankTest.scala | 51 +-
.../stream/sql/RelTimeIndicatorConverterTest.scala | 2 +-
.../planner/plan/stream/sql/SetOperatorsTest.scala | 27 +-
.../planner/plan/stream/sql/SortLimitTest.scala | 2 +-
.../table/planner/plan/stream/sql/SortTest.scala | 2 +-
.../plan/stream/sql/SourceWatermarkTest.scala | 4 +-
.../planner/plan/stream/sql/SubplanReuseTest.scala | 4 +-
.../planner/plan/stream/sql/TableScanTest.scala | 84 +-
.../planner/plan/stream/sql/TableSinkTest.scala | 72 +-
.../planner/plan/stream/sql/TableSourceTest.scala | 16 +-
.../table/planner/plan/stream/sql/UnionTest.scala | 4 +-
.../table/planner/plan/stream/sql/UnnestTest.scala | 2 +-
.../table/planner/plan/stream/sql/ValuesTest.scala | 2 +-
.../plan/stream/sql/WindowDeduplicateTest.scala | 15 +-
.../planner/plan/stream/sql/WindowRankTest.scala | 61 +-
.../plan/stream/sql/WindowTableFunctionTest.scala | 20 +-
.../plan/stream/sql/agg/AggregateTest.scala | 24 +-
.../stream/sql/agg/DistinctAggregateTest.scala | 46 +-
.../plan/stream/sql/agg/GroupWindowTest.scala | 63 +-
.../plan/stream/sql/agg/GroupingSetsTest.scala | 13 +-
.../stream/sql/agg/IncrementalAggregateTest.scala | 12 +-
.../plan/stream/sql/agg/OverAggregateTest.scala | 31 +-
.../stream/sql/agg/TwoStageAggregateTest.scala | 4 +-
.../plan/stream/sql/agg/WindowAggregateTest.scala | 211 ++-
.../plan/stream/sql/join/IntervalJoinTest.scala | 31 +-
.../plan/stream/sql/join/JoinReorderTest.scala | 6 +-
.../planner/plan/stream/sql/join/JoinTest.scala | 2 +-
.../plan/stream/sql/join/LookupJoinTest.scala | 155 ++-
.../plan/stream/sql/join/SemiAntiJoinTest.scala | 2 +-
.../stream/sql/join/TemporalFunctionJoinTest.scala | 18 +-
.../plan/stream/sql/join/TemporalJoinTest.scala | 29 +-
.../plan/stream/sql/join/WindowJoinTest.scala | 21 +-
.../planner/plan/stream/table/AggregateTest.scala | 2 +-
.../table/planner/plan/stream/table/CalcTest.scala | 2 +-
.../plan/stream/table/ColumnFunctionsTest.scala | 2 +-
.../planner/plan/stream/table/CorrelateTest.scala | 2 +-
.../table/GroupWindowTableAggregateTest.scala | 2 +-
.../plan/stream/table/GroupWindowTest.scala | 2 +-
.../table/planner/plan/stream/table/JoinTest.scala | 2 +-
.../plan/stream/table/LegacyTableSourceTest.scala | 2 +-
.../plan/stream/table/OverAggregateTest.scala | 2 +-
.../plan/stream/table/PythonAggregateTest.scala | 32 +-
.../planner/plan/stream/table/PythonCalcTest.scala | 4 +-
.../table/PythonGroupWindowAggregateTest.scala | 14 +-
.../table/PythonOverWindowAggregateTest.scala | 2 +-
.../stream/table/PythonTableAggregateTest.scala | 2 +-
.../plan/stream/table/SetOperatorsTest.scala | 2 +-
.../plan/stream/table/TableAggregateTest.scala | 2 +-
.../plan/stream/table/TableSourceTest.scala | 20 +-
.../table/TemporalTableFunctionJoinTest.scala | 27 +-
.../plan/stream/table/TwoStageAggregateTest.scala | 4 +-
.../table/validation/AggregateValidationTest.scala | 114 +-
.../table/validation/CalcValidationTest.scala | 162 ++-
.../table/validation/CorrelateValidationTest.scala | 99 +-
.../GroupWindowTableAggregateValidationTest.scala | 44 +-
.../validation/GroupWindowValidationTest.scala | 301 +++--
.../validation/LegacyTableSinkValidationTest.scala | 67 +-
.../validation/OverWindowValidationTest.scala | 173 ++-
.../validation/SetOperatorsValidationTest.scala | 38 +-
.../validation/TableAggregateValidationTest.scala | 137 +-
.../TemporalTableJoinValidationTest.scala | 46 +-
.../flink/table/planner/utils/TableTestBase.scala | 100 +-
308 files changed, 5252 insertions(+), 4565 deletions(-)
(flink) 05/08: [FLINK-33023][table-planner][JUnit5 Migration] Module: flink-table-planner/planner/alias (TableTestBase)
Posted by le...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
leonard pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/flink.git
commit f44b6764cbd7708748b27b2ab49cf81980819806
Author: Jiabao Sun <ji...@xtransfer.cn>
AuthorDate: Tue Sep 12 15:39:31 2023 +0800
[FLINK-33023][table-planner][JUnit5 Migration] Module: flink-table-planner/planner/alias (TableTestBase)
---
...ClearJoinHintWithCapitalizeJoinHintShuttleTest.java | 14 +++++++-------
...ClearJoinHintWithInvalidPropagationShuttleTest.java | 12 ++++++------
...rJoinHintWithInvalidPropagationShuttleTestBase.java | 8 ++++----
...ookupJoinHintWithInvalidPropagationShuttleTest.java | 18 +++++++++---------
4 files changed, 26 insertions(+), 26 deletions(-)
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/alias/ClearJoinHintWithCapitalizeJoinHintShuttleTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/alias/ClearJoinHintWithCapitalizeJoinHintShuttleTest.java
index 210cc122c7d..86b0157502a 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/alias/ClearJoinHintWithCapitalizeJoinHintShuttleTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/alias/ClearJoinHintWithCapitalizeJoinHintShuttleTest.java
@@ -31,13 +31,13 @@ import org.apache.calcite.rel.core.JoinRelType;
import org.apache.calcite.rel.hint.RelHint;
import org.apache.calcite.rel.type.RelDataType;
import org.apache.calcite.sql.type.SqlTypeName;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
import java.util.Collections;
/** Tests clearing lookup join hint case-insensitive in stream. */
-public class ClearJoinHintWithCapitalizeJoinHintShuttleTest
+class ClearJoinHintWithCapitalizeJoinHintShuttleTest
extends ClearJoinHintWithInvalidPropagationShuttleTestBase {
@Override
@@ -50,8 +50,8 @@ public class ClearJoinHintWithCapitalizeJoinHintShuttleTest
return false;
}
- @Before
- public void before() throws Exception {
+ @BeforeEach
+ void before() throws Exception {
super.before();
util.tableEnv()
@@ -72,7 +72,7 @@ public class ClearJoinHintWithCapitalizeJoinHintShuttleTest
}
@Test
- public void testClearCaseInsensitiveLookupHint() {
+ void testClearCaseInsensitiveLookupHint() {
// SELECT /*+ lookUp('table'='lookup', 'retry-predicate'='lookup_miss',
// 'retry-strategy'='fixed_delay', 'fixed-delay'='155 ms', 'max-attempts'='10',
// 'async'='true', 'output-mode'='allow_unordered','capacity'='1000', 'time-out'='300 s')
@@ -130,7 +130,7 @@ public class ClearJoinHintWithCapitalizeJoinHintShuttleTest
}
@Override
- public void verifyRelPlan(RelNode node) {
+ protected void verifyRelPlan(RelNode node) {
String plan = buildRelPlanWithQueryBlockAlias(node);
util.assertEqualsOrExpand("beforePropagatingHints", plan, true);
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/alias/ClearJoinHintWithInvalidPropagationShuttleTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/alias/ClearJoinHintWithInvalidPropagationShuttleTest.java
index 6801c602539..d4ebef36706 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/alias/ClearJoinHintWithInvalidPropagationShuttleTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/alias/ClearJoinHintWithInvalidPropagationShuttleTest.java
@@ -26,10 +26,10 @@ import org.apache.flink.table.planner.utils.TableTestUtil;
import org.apache.calcite.rel.RelNode;
import org.apache.calcite.rel.core.JoinRelType;
import org.apache.calcite.rel.hint.RelHint;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
/** Tests clearing join hint with invalid propagation in batch. */
-public class ClearJoinHintWithInvalidPropagationShuttleTest
+class ClearJoinHintWithInvalidPropagationShuttleTest
extends ClearJoinHintWithInvalidPropagationShuttleTestBase {
@Override
TableTestUtil getTableTestUtil() {
@@ -42,7 +42,7 @@ public class ClearJoinHintWithInvalidPropagationShuttleTest
}
@Test
- public void testNoNeedToClearJoinHint() {
+ void testNoNeedToClearJoinHint() {
// SELECT /*+ BROADCAST(t1)*/t1.a FROM t1 JOIN t2 ON t1.a = t2.a
RelHint joinHintInView =
RelHint.builder(JoinStrategy.BROADCAST.getJoinHintName()).hintOption("t1").build();
@@ -60,7 +60,7 @@ public class ClearJoinHintWithInvalidPropagationShuttleTest
}
@Test
- public void testClearJoinHintWithInvalidPropagationToViewWhileViewHasJoinHints() {
+ void testClearJoinHintWithInvalidPropagationToViewWhileViewHasJoinHints() {
// SELECT /*+ BROADCAST(t3)*/t4.a FROM (
// SELECT /*+ BROADCAST(t1)*/t1.a FROM t1 JOIN t2 ON t1.a = t2.a
// ) t4 JOIN t3 ON t4.a = t3.a
@@ -91,7 +91,7 @@ public class ClearJoinHintWithInvalidPropagationShuttleTest
}
@Test
- public void testClearJoinHintWithInvalidPropagationToViewWhileViewHasNoJoinHints() {
+ void testClearJoinHintWithInvalidPropagationToViewWhileViewHasNoJoinHints() {
// SELECT /*+ BROADCAST(t3)*/t4.a FROM (
// SELECT t1.a FROM t1 JOIN t2 ON t1.a = t2.a
// ) t4 JOIN t3 ON t4.a = t3.a
@@ -119,7 +119,7 @@ public class ClearJoinHintWithInvalidPropagationShuttleTest
}
@Test
- public void testClearJoinHintWithoutPropagatingToView() {
+ void testClearJoinHintWithoutPropagatingToView() {
// SELECT /*+ BROADCAST(t1)*/t4.a FROM (
// SELECT t1.a FROM t1 JOIN t2 ON t1.a = t2.a
// ) t4 JOIN t3 ON t4.a = t3.a
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/alias/ClearJoinHintWithInvalidPropagationShuttleTestBase.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/alias/ClearJoinHintWithInvalidPropagationShuttleTestBase.java
index 105f4e42a38..745becc26ff 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/alias/ClearJoinHintWithInvalidPropagationShuttleTestBase.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/alias/ClearJoinHintWithInvalidPropagationShuttleTestBase.java
@@ -34,12 +34,12 @@ import org.apache.flink.table.utils.CatalogManagerMocks;
import org.apache.calcite.plan.RelOptUtil;
import org.apache.calcite.rel.RelNode;
import org.apache.calcite.sql.SqlExplainLevel;
-import org.junit.Before;
+import org.junit.jupiter.api.BeforeEach;
import java.util.Collections;
/** A base class for testing clearing join hint with invalid propagation. */
-public abstract class ClearJoinHintWithInvalidPropagationShuttleTestBase extends TableTestBase {
+abstract class ClearJoinHintWithInvalidPropagationShuttleTestBase extends TableTestBase {
protected final TableTestUtil util = getTableTestUtil();
@@ -67,8 +67,8 @@ public abstract class ClearJoinHintWithInvalidPropagationShuttleTestBase extends
.build();
protected final FlinkRelBuilder builder = plannerMocks.getPlannerContext().createRelBuilder();
- @Before
- public void before() throws Exception {
+ @BeforeEach
+ void before() throws Exception {
util.tableEnv().registerCatalog("testCatalog", catalog);
util.tableEnv().executeSql("use catalog testCatalog");
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/alias/ClearLookupJoinHintWithInvalidPropagationShuttleTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/alias/ClearLookupJoinHintWithInvalidPropagationShuttleTest.java
index 13c8f7e6eb5..0e89a4aa2b2 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/alias/ClearLookupJoinHintWithInvalidPropagationShuttleTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/alias/ClearLookupJoinHintWithInvalidPropagationShuttleTest.java
@@ -38,13 +38,13 @@ import org.apache.calcite.sql.SqlOperatorBinding;
import org.apache.calcite.sql.fun.SqlCollectionTableOperator;
import org.apache.calcite.sql.type.SqlTypeName;
import org.apache.calcite.sql.validate.SqlModality;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
import java.util.Collections;
/** Tests clearing lookup join hint with invalid propagation in stream. */
-public class ClearLookupJoinHintWithInvalidPropagationShuttleTest
+class ClearLookupJoinHintWithInvalidPropagationShuttleTest
extends ClearJoinHintWithInvalidPropagationShuttleTestBase {
@Override
TableTestUtil getTableTestUtil() {
@@ -56,8 +56,8 @@ public class ClearLookupJoinHintWithInvalidPropagationShuttleTest
return false;
}
- @Before
- public void before() throws Exception {
+ @BeforeEach
+ void before() throws Exception {
super.before();
util.tableEnv()
@@ -84,7 +84,7 @@ public class ClearLookupJoinHintWithInvalidPropagationShuttleTest
}
@Test
- public void testNoNeedToClearLookupHint() {
+ void testNoNeedToClearLookupHint() {
// SELECT /*+ LOOKUP('table'='lookup', 'retry-predicate'='lookup_miss',
// 'retry-strategy'='fixed_delay', 'fixed-delay'='155 ms', 'max-attempts'='10',
// 'async'='true', 'output-mode'='allow_unordered','capacity'='1000', 'time-out'='300 s')
@@ -129,7 +129,7 @@ public class ClearLookupJoinHintWithInvalidPropagationShuttleTest
}
@Test
- public void testClearLookupHintWithInvalidPropagationToSubQuery() {
+ void testClearLookupHintWithInvalidPropagationToSubQuery() {
// SELECT /*+ LOOKUP('table'='src', 'retry-predicate'='lookup_miss',
// 'retry-strategy'='fixed_delay', 'fixed-delay'='155 ms', 'max-attempts'='10',
// 'async'='true', 'output-mode'='allow_unordered','capacity'='1000', 'time-out'='300 s')
@@ -187,7 +187,7 @@ public class ClearLookupJoinHintWithInvalidPropagationShuttleTest
}
@Test
- public void testNoNeedToClearLookupHintWhileJoinWithUnnest() {
+ void testNoNeedToClearLookupHintWhileJoinWithUnnest() {
// SELECT /*+ LOOKUP('table'='d', 'retry-predicate'='lookup_miss',
// 'retry-strategy'='fixed_delay', 'fixed-delay'='155 ms', 'max-attempts'='10',
// 'async'='true', 'output-mode'='allow_unordered','capacity'='1000', 'time-out'='300 s')
@@ -224,7 +224,7 @@ public class ClearLookupJoinHintWithInvalidPropagationShuttleTest
}
@Test
- public void testNoNeedToClearLookupHintWhileJoinWithUDTF() {
+ void testNoNeedToClearLookupHintWhileJoinWithUDTF() {
// SELECT /*+ LOOKUP('table'='d', 'retry-predicate'='lookup_miss',
// 'retry-strategy'='fixed_delay', 'fixed-delay'='155 ms', 'max-attempts'='10',
// 'async'='true', 'output-mode'='allow_unordered','capacity'='1000', 'time-out'='300 s')
(flink) 03/08: [FLINK-33023][table-planner][JUnit5 Migration] Module: flink-connectors/flink-connector-hive (TableTestBase)
Posted by le...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
leonard pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/flink.git
commit 4cd8285274a0b48b2fbce57f56872e2b1f1befa2
Author: Jiabao Sun <ji...@xtransfer.cn>
AuthorDate: Tue Sep 12 14:49:09 2023 +0800
[FLINK-33023][table-planner][JUnit5 Migration] Module: flink-connectors/flink-connector-hive (TableTestBase)
---
.../connectors/hive/HiveTemporalJoinITCase.java | 49 +++++++++++++---------
1 file changed, 29 insertions(+), 20 deletions(-)
diff --git a/flink-connectors/flink-connector-hive/src/test/java/org/apache/flink/connectors/hive/HiveTemporalJoinITCase.java b/flink-connectors/flink-connector-hive/src/test/java/org/apache/flink/connectors/hive/HiveTemporalJoinITCase.java
index 3f1685fb0ae..0b238aff180 100644
--- a/flink-connectors/flink-connector-hive/src/test/java/org/apache/flink/connectors/hive/HiveTemporalJoinITCase.java
+++ b/flink-connectors/flink-connector-hive/src/test/java/org/apache/flink/connectors/hive/HiveTemporalJoinITCase.java
@@ -31,13 +31,15 @@ import org.apache.flink.table.planner.factories.utils.TestCollectionTableFactory
import org.apache.flink.table.planner.utils.TableTestBase;
import org.apache.flink.types.Row;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.Test;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Test;
import java.sql.Timestamp;
import java.util.Arrays;
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
+
/**
* Test Temporal join of hive tables.
*
@@ -45,13 +47,13 @@ import java.util.Arrays;
* 3.1.1. To run this test, please use mvn command: mvn test -Phive-3.1.1
* -Dtest=org.apache.flink.connectors.hive.HiveTemporalJoinITCase
*/
-public class HiveTemporalJoinITCase extends TableTestBase {
+class HiveTemporalJoinITCase extends TableTestBase {
private static TableEnvironment tableEnv;
private static HiveCatalog hiveCatalog;
- @BeforeClass
- public static void setup() {
+ @BeforeAll
+ static void setup() {
if (!HiveVersionTestUtil.HIVE_310_OR_LATER) {
return;
}
@@ -96,7 +98,7 @@ public class HiveTemporalJoinITCase extends TableTestBase {
}
@Test
- public void testProcTimeTemporalJoinHiveTable() throws Exception {
+ void testProcTimeTemporalJoinHiveTable() throws Exception {
if (!HiveVersionTestUtil.HIVE_310_OR_LATER) {
return;
}
@@ -104,16 +106,22 @@ public class HiveTemporalJoinITCase extends TableTestBase {
tableEnv.executeSql("insert into build values (1,'a',10),(2,'a',21),(2,'b',22),(3,'c',33)")
.await();
- expectedException().expect(TableException.class);
- expectedException().expectMessage("Processing-time temporal join is not supported yet.");
tableEnv.executeSql(
"select p.x, p.y, b.z from "
+ " default_catalog.default_database.probe as p "
+ " join build for system_time as of p.p as b on p.x=b.x and p.y=b.y");
+ assertThatThrownBy(
+ () ->
+ tableEnv.executeSql(
+ "select p.x, p.y, b.z from "
+ + " default_catalog.default_database.probe as p "
+ + " join build for system_time as of p.p as b on p.x=b.x and p.y=b.y"))
+ .hasMessageContaining("Processing-time temporal join is not supported yet.")
+ .isInstanceOf(TableException.class);
}
@Test
- public void testRowTimeTemporalJoinHiveTable() throws Exception {
+ void testRowTimeTemporalJoinHiveTable() throws Exception {
if (!HiveVersionTestUtil.HIVE_310_OR_LATER) {
return;
}
@@ -122,19 +130,20 @@ public class HiveTemporalJoinITCase extends TableTestBase {
.await();
// Streaming hive table does not support defines watermark
- expectedException().expect(ValidationException.class);
- expectedException()
- .expectMessage(
+ assertThatThrownBy(
+ () ->
+ tableEnv.executeSql(
+ "select p.x, p.y, b.z from "
+ + " default_catalog.default_database.probe as p "
+ + " join build for system_time as of p.rowtime as b on p.x=b.x and p.y=b.y"))
+ .hasMessageContaining(
"Event-Time Temporal Table Join requires both primary key"
- + " and row time attribute in versioned table, but no row time attribute can be found.");
- tableEnv.executeSql(
- "select p.x, p.y, b.z from "
- + " default_catalog.default_database.probe as p "
- + " join build for system_time as of p.rowtime as b on p.x=b.x and p.y=b.y");
+ + " and row time attribute in versioned table, but no row time attribute can be found.")
+ .isInstanceOf(ValidationException.class);
}
- @AfterClass
- public static void tearDown() {
+ @AfterAll
+ static void tearDown() {
if (!HiveVersionTestUtil.HIVE_310_OR_LATER) {
return;
}
(flink) 06/08: [FLINK-33023][table-planner][JUnit5 Migration] Module: flink-table-planner/planner/analyze (TableTestBase)
Posted by le...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
leonard pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/flink.git
commit b9923dee7890b402b499303915b7f92cf613eb87
Author: Jiabao Sun <ji...@xtransfer.cn>
AuthorDate: Tue Sep 12 15:40:26 2023 +0800
[FLINK-33023][table-planner][JUnit5 Migration] Module: flink-table-planner/planner/analyze (TableTestBase)
---
.../analyze/GroupAggregationAnalyzerTest.java | 56 +++++++++++-----------
.../NonDeterministicUpdateAnalyzerTest.java | 24 +++++-----
2 files changed, 41 insertions(+), 39 deletions(-)
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/analyze/GroupAggregationAnalyzerTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/analyze/GroupAggregationAnalyzerTest.java
index 6dc02bbc758..1c48e723000 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/analyze/GroupAggregationAnalyzerTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/analyze/GroupAggregationAnalyzerTest.java
@@ -28,11 +28,13 @@ import org.apache.flink.table.planner.utils.AggregatePhaseStrategy;
import org.apache.flink.table.planner.utils.PlanKind;
import org.apache.flink.table.planner.utils.StreamTableTestUtil;
import org.apache.flink.table.planner.utils.TableTestBase;
+import org.apache.flink.testutils.junit.extensions.parameterized.Parameter;
+import org.apache.flink.testutils.junit.extensions.parameterized.ParameterizedTestExtension;
+import org.apache.flink.testutils.junit.extensions.parameterized.Parameters;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.TestTemplate;
+import org.junit.jupiter.api.extension.ExtendWith;
import java.time.Duration;
@@ -41,21 +43,21 @@ import scala.Enumeration;
import static scala.runtime.BoxedUnit.UNIT;
/** Test for {@link GroupAggregationAnalyzer}. */
-@RunWith(Parameterized.class)
-public class GroupAggregationAnalyzerTest extends TableTestBase {
+@ExtendWith(ParameterizedTestExtension.class)
+class GroupAggregationAnalyzerTest extends TableTestBase {
private final StreamTableTestUtil util = streamTestUtil(TableConfig.getDefault());
- @Parameterized.Parameter public boolean isMiniBatchEnabled;
+ @Parameter private boolean isMiniBatchEnabled;
- @Parameterized.Parameter(1)
- public AggregatePhaseStrategy strategy;
+ @Parameter(1)
+ private AggregatePhaseStrategy strategy;
- @Parameterized.Parameter(2)
- public long miniBatchLatency;
+ @Parameter(2)
+ private long miniBatchLatency;
- @Parameterized.Parameter(3)
- public long miniBatchSize;
+ @Parameter(3)
+ private long miniBatchSize;
private final String query =
"SELECT\n"
@@ -66,8 +68,8 @@ public class GroupAggregationAnalyzerTest extends TableTestBase {
+ " MAX(c) FILTER (WHERE a > 1) AS max_c\n"
+ "FROM MyTable";
- @Before
- public void before() {
+ @BeforeEach
+ void before() {
util.getTableEnv()
.getConfig()
.set(ExecutionConfigOptions.TABLE_EXEC_MINIBATCH_ENABLED, isMiniBatchEnabled)
@@ -99,8 +101,8 @@ public class GroupAggregationAnalyzerTest extends TableTestBase {
+ " 'sink-insert-only' = 'false')");
}
- @Test
- public void testSelect() {
+ @TestTemplate
+ void testSelect() {
util.doVerifyPlan(
query,
new ExplainDetail[] {ExplainDetail.PLAN_ADVICE},
@@ -109,8 +111,8 @@ public class GroupAggregationAnalyzerTest extends TableTestBase {
false);
}
- @Test
- public void testInsertInto() {
+ @TestTemplate
+ void testInsertInto() {
util.doVerifyPlanInsert(
String.format("INSERT INTO MySink\n%s", query),
new ExplainDetail[] {ExplainDetail.PLAN_ADVICE},
@@ -118,8 +120,8 @@ public class GroupAggregationAnalyzerTest extends TableTestBase {
new Enumeration.Value[] {PlanKind.OPT_REL_WITH_ADVICE()});
}
- @Test
- public void testStatementSet() {
+ @TestTemplate
+ void testStatementSet() {
StatementSet stmtSet = util.getTableEnv().createStatementSet();
util.getTableEnv().executeSql("CREATE TABLE MySink2 LIKE MySink");
util.getTableEnv()
@@ -151,8 +153,8 @@ public class GroupAggregationAnalyzerTest extends TableTestBase {
false);
}
- @Test
- public void testSubplanReuse() {
+ @TestTemplate
+ void testSubplanReuse() {
util.doVerifyPlan(
"WITH r AS (SELECT c, SUM(a) a, SUM(b) b FROM MyTable GROUP BY c)\n"
+ "SELECT * FROM r r1, r r2 WHERE r1.a = CAST(r2.b AS BIGINT) AND r2.a > 1",
@@ -162,8 +164,8 @@ public class GroupAggregationAnalyzerTest extends TableTestBase {
false);
}
- @Test
- public void testUserDefinedAggCalls() {
+ @TestTemplate
+ void testUserDefinedAggCalls() {
StatementSet stmtSet = util.getTableEnv().createStatementSet();
util.addTemporarySystemFunction(
"weightedAvg", JavaUserDefinedAggFunctions.WeightedAvgWithMerge.class);
@@ -199,9 +201,9 @@ public class GroupAggregationAnalyzerTest extends TableTestBase {
false);
}
- @Parameterized.Parameters(
+ @Parameters(
name = "isMiniBatchEnabled={0}, strategy={1}, miniBatchLatency={2}, miniBatchSize={3}")
- public static Object[][] data() {
+ private static Object[][] data() {
return new Object[][] {
new Object[] {true, AggregatePhaseStrategy.ONE_PHASE, 10L, 5L},
new Object[] {true, AggregatePhaseStrategy.AUTO, 10L, 5L},
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/analyze/NonDeterministicUpdateAnalyzerTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/analyze/NonDeterministicUpdateAnalyzerTest.java
index 7ee9cc12700..5c2ac6316f1 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/analyze/NonDeterministicUpdateAnalyzerTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/analyze/NonDeterministicUpdateAnalyzerTest.java
@@ -26,20 +26,20 @@ import org.apache.flink.table.planner.utils.PlanKind;
import org.apache.flink.table.planner.utils.StreamTableTestUtil;
import org.apache.flink.table.planner.utils.TableTestBase;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
import scala.Enumeration;
import static scala.runtime.BoxedUnit.UNIT;
/** Test for {@link NonDeterministicUpdateAnalyzer}. */
-public class NonDeterministicUpdateAnalyzerTest extends TableTestBase {
+class NonDeterministicUpdateAnalyzerTest extends TableTestBase {
private final StreamTableTestUtil util = streamTestUtil(TableConfig.getDefault());
- @Before
- public void before() {
+ @BeforeEach
+ void before() {
util.getTableEnv()
.executeSql(
"create temporary table cdc (\n"
@@ -104,7 +104,7 @@ public class NonDeterministicUpdateAnalyzerTest extends TableTestBase {
}
@Test
- public void testCdcWithMetaRenameSinkWithCompositePk() {
+ void testCdcWithMetaRenameSinkWithCompositePk() {
// from NonDeterministicDagTest#testCdcWithMetaRenameSinkWithCompositePk
util.getTableEnv()
.executeSql(
@@ -142,7 +142,7 @@ public class NonDeterministicUpdateAnalyzerTest extends TableTestBase {
}
@Test
- public void testSourceWithComputedColumnSinkWithPk() {
+ void testSourceWithComputedColumnSinkWithPk() {
// from NonDeterministicDagTest#testSourceWithComputedColumnSinkWithPk
util.getTableEnv()
.executeSql(
@@ -168,7 +168,7 @@ public class NonDeterministicUpdateAnalyzerTest extends TableTestBase {
}
@Test
- public void testCdcJoinDimWithPkNonDeterministicLocalCondition() {
+ void testCdcJoinDimWithPkNonDeterministicLocalCondition() {
// from NonDeterministicDagTest#testCdcJoinDimWithPkNonDeterministicLocalCondition
util.doVerifyPlanInsert(
"insert into sink_without_pk\n"
@@ -183,7 +183,7 @@ public class NonDeterministicUpdateAnalyzerTest extends TableTestBase {
}
@Test
- public void testCdcWithMetaSinkWithPk() {
+ void testCdcWithMetaSinkWithPk() {
// from NonDeterministicDagTest#testCdcWithMetaSinkWithPk
util.doVerifyPlanInsert(
"insert into sink_with_pk\n" + "select a, metadata_3, c\n" + "from cdc_with_meta",
@@ -193,7 +193,7 @@ public class NonDeterministicUpdateAnalyzerTest extends TableTestBase {
}
@Test
- public void testGroupByNonDeterministicFuncWithCdcSource() {
+ void testGroupByNonDeterministicFuncWithCdcSource() {
// from NonDeterministicDagTest#testGroupByNonDeterministicFuncWithCdcSource
util.doVerifyPlanInsert(
"insert into sink_with_pk\n"
@@ -209,7 +209,7 @@ public class NonDeterministicUpdateAnalyzerTest extends TableTestBase {
}
@Test
- public void testMultiSinkOnJoinedView() {
+ void testMultiSinkOnJoinedView() {
// from NonDeterministicDagTest#testMultiSinkOnJoinedView
util.getTableEnv()
.executeSql(
@@ -293,7 +293,7 @@ public class NonDeterministicUpdateAnalyzerTest extends TableTestBase {
}
@Test
- public void testCdcJoinDimWithPkOutputNoPkSinkWithoutPk() {
+ void testCdcJoinDimWithPkOutputNoPkSinkWithoutPk() {
// from NonDeterministicDagTest#testCdcJoinDimWithPkOutputNoPkSinkWithoutPk
util.doVerifyPlanInsert(
"insert into sink_without_pk\n"
(flink) 08/08: [FLINK-33023][table-planner][JUnit5 Migration] Module: flink-table-planner/planner/plan (TableTestBase)
Posted by le...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
leonard pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/flink.git
commit cdb759b0ecda97bb04912553c7453710a07d499d
Author: Jiabao Sun <ji...@xtransfer.cn>
AuthorDate: Tue Sep 12 15:43:23 2023 +0800
[FLINK-33023][table-planner][JUnit5 Migration] Module: flink-table-planner/planner/plan (TableTestBase)
---
.../planner/plan/batch/sql/CalcMergeTest.java | 2 +-
.../plan/batch/sql/DynamicFilteringTest.java | 47 +-
.../plan/batch/sql/DynamicFunctionPlanTest.java | 2 +-
.../plan/batch/sql/ForwardHashExchangeTest.java | 52 +-
.../planner/plan/batch/sql/MatchRecognizeTest.java | 18 +-
.../planner/plan/batch/sql/RowLevelDeleteTest.java | 43 +-
.../planner/plan/batch/sql/RowLevelUpdateTest.java | 66 +-
.../planner/plan/batch/sql/TimeTravelTest.java | 30 +-
.../planner/plan/common/CalcMergeTestBase.java | 26 +-
.../plan/common/DynamicFunctionPlanTestBase.java | 16 +-
.../plan/hints/batch/BroadcastJoinHintTest.java | 2 +-
.../planner/plan/hints/batch/JoinHintTestBase.java | 208 +--
.../plan/hints/batch/NestLoopJoinHintTest.java | 2 +-
.../plan/hints/batch/ShuffleHashJoinHintTest.java | 2 +-
.../plan/hints/batch/ShuffleMergeJoinHintTest.java | 2 +-
.../nodes/exec/UnsupportedNodesInPlanTest.java | 6 +-
.../nodes/exec/operator/BatchOperatorNameTest.java | 52 +-
.../nodes/exec/operator/OperatorNameTestBase.java | 44 +-
.../exec/operator/StreamOperatorNameTest.java | 86 +-
.../MultipleInputNodeCreationProcessorTest.java | 15 +-
.../plan/nodes/exec/stream/CalcJsonPlanTest.java | 20 +-
.../exec/stream/ChangelogSourceJsonPlanTest.java | 14 +-
.../nodes/exec/stream/CorrelateJsonPlanTest.java | 24 +-
.../exec/stream/DeduplicationJsonPlanTest.java | 12 +-
.../plan/nodes/exec/stream/ExpandJsonPlanTest.java | 12 +-
.../exec/stream/GroupAggregateJsonPlanTest.java | 40 +-
.../stream/GroupWindowAggregateJsonPlanTest.java | 22 +-
.../stream/IncrementalAggregateJsonPlanTest.java | 14 +-
.../exec/stream/IntervalJoinJsonPlanTest.java | 14 +-
.../plan/nodes/exec/stream/JoinJsonPlanTest.java | 18 +-
.../nodes/exec/stream/LookupJoinJsonPlanTest.java | 34 +-
.../exec/stream/MatchRecognizeJsonPlanTest.java | 20 +-
.../exec/stream/OverAggregateJsonPlanTest.java | 24 +-
.../nodes/exec/stream/PythonCalcJsonPlanTest.java | 14 +-
.../exec/stream/PythonCorrelateJsonPlanTest.java | 14 +-
.../stream/PythonGroupAggregateJsonPlanTest.java | 12 +-
.../PythonGroupWindowAggregateJsonPlanTest.java | 22 +-
.../stream/PythonOverAggregateJsonPlanTest.java | 20 +-
.../plan/nodes/exec/stream/RankJsonPlanTest.java | 12 +-
.../plan/nodes/exec/stream/SortJsonPlanTest.java | 12 +-
.../nodes/exec/stream/SortLimitJsonPlanTest.java | 12 +-
.../nodes/exec/stream/TableSinkJsonPlanTest.java | 20 +-
.../nodes/exec/stream/TableSourceJsonPlanTest.java | 24 +-
.../exec/stream/TemporalJoinJsonPlanTest.java | 14 +-
.../exec/stream/TemporalSortJsonPlanTest.java | 14 +-
.../plan/nodes/exec/stream/UnionJsonPlanTest.java | 12 +-
.../plan/nodes/exec/stream/ValuesJsonPlanTest.java | 12 +-
.../exec/stream/WatermarkAssignerJsonPlanTest.java | 12 +-
.../exec/stream/WindowAggregateJsonPlanTest.java | 30 +-
.../nodes/exec/stream/WindowJoinJsonPlanTest.java | 12 +-
.../stream/WindowTableFunctionJsonPlanTest.java | 20 +-
.../optimize/ClearQueryBlockAliasResolverTest.java | 2 +-
.../table/planner/plan/optimize/ScanReuseTest.java | 125 +-
.../DynamicPartitionPruningProgramTest.java | 91 +-
.../program/FlinkRuntimeFilterProgramTest.java | 60 +-
.../rules/logical/FlinkFilterJoinRuleTest.java | 116 +-
.../logical/ProjectSnapshotTransposeRuleTest.java | 40 +-
.../ProjectWatermarkAssignerTransposeRuleTest.java | 32 +-
.../PushFilterInCalcIntoTableSourceRuleTest.java | 17 +-
.../PushFilterIntoTableSourceScanRuleTest.java | 25 +-
.../PushFilterIntoTableSourceScanRuleTestBase.java | 44 +-
.../PushLimitIntoTableSourceScanRuleTest.java | 6 +-
.../PushPartitionIntoTableSourceScanRuleTest.java | 13 +-
.../PushProjectIntoTableSourceScanRuleTest.java | 44 +-
.../PushWatermarkIntoTableSourceScanRuleTest.java | 40 +-
...RemoveUnreachableCoalesceArgumentsRuleTest.java | 24 +-
.../WrapJsonAggFunctionArgumentsRuleTest.java | 63 +-
.../PushLocalAggIntoTableSourceScanRuleTest.java | 44 +-
.../PushCalcPastChangelogNormalizeRuleTest.java | 22 +-
.../planner/plan/stream/sql/CalcMergeTest.java | 2 +-
.../plan/stream/sql/DynamicFunctionPlanTest.java | 2 +-
.../plan/stream/sql/InsertIntoValuesTest.java | 6 +-
.../plan/stream/sql/LegacyTableFactoryTest.java | 10 +-
.../planner/plan/stream/sql/NullTypeTest.java | 79 +-
.../planner/plan/stream/table/ValuesTest.java | 90 +-
.../planner/plan/common/ViewsExpandingTest.xml | 20 +-
.../table/planner/plan/hint/OptionsHintTest.xml | 20 +-
.../table/planner/plan/batch/sql/CalcTest.scala | 10 +-
.../plan/batch/sql/CompactManagedTableTest.scala | 6 +-
.../plan/batch/sql/DagOptimizationTest.scala | 2 +-
.../plan/batch/sql/DeadlockBreakupTest.scala | 4 +-
.../planner/plan/batch/sql/LegacyLimitTest.scala | 15 +-
.../planner/plan/batch/sql/LegacySinkTest.scala | 3 +-
.../plan/batch/sql/LegacyTableSourceTest.scala | 13 +-
.../table/planner/plan/batch/sql/LimitTest.scala | 3 +
.../plan/batch/sql/MultipleInputCreationTest.scala | 45 +-
.../plan/batch/sql/OperatorFusionCodegenTest.scala | 18 +-
.../plan/batch/sql/PartitionableSinkTest.scala | 17 +-
.../plan/batch/sql/PartitionableSourceTest.scala | 26 +-
.../table/planner/plan/batch/sql/RankTest.scala | 30 +-
.../plan/batch/sql/RemoveCollationTest.scala | 4 +-
.../planner/plan/batch/sql/RemoveShuffleTest.scala | 4 +-
.../planner/plan/batch/sql/SetOperatorsTest.scala | 27 +-
.../planner/plan/batch/sql/SortLimitTest.scala | 2 +-
.../table/planner/plan/batch/sql/SortTest.scala | 2 +-
.../planner/plan/batch/sql/SubplanReuseTest.scala | 4 +-
.../planner/plan/batch/sql/TableScanTest.scala | 43 +-
.../planner/plan/batch/sql/TableSinkTest.scala | 8 +-
.../planner/plan/batch/sql/TableSourceTest.scala | 4 +-
.../table/planner/plan/batch/sql/UnionTest.scala | 4 +-
.../table/planner/plan/batch/sql/ValuesTest.scala | 2 +-
.../plan/batch/sql/WindowTableFunctionTest.scala | 38 +-
.../plan/batch/sql/agg/AggregateTestBase.scala | 48 +-
.../plan/batch/sql/agg/GroupWindowTest.scala | 153 +--
.../plan/batch/sql/agg/GroupingSetsTest.scala | 6 +-
.../plan/batch/sql/agg/HashAggregateTest.scala | 34 +-
.../plan/batch/sql/agg/OverAggregateTest.scala | 30 +-
.../plan/batch/sql/agg/SortAggregateTest.scala | 14 +-
.../batch/sql/join/BroadcastHashJoinTest.scala | 95 +-
.../sql/join/BroadcastHashSemiAntiJoinTest.scala | 125 +-
.../plan/batch/sql/join/JoinReorderTest.scala | 6 +-
.../planner/plan/batch/sql/join/JoinTestBase.scala | 18 +-
.../plan/batch/sql/join/LookupJoinTest.scala | 108 +-
.../plan/batch/sql/join/NestedLoopJoinTest.scala | 4 +-
.../sql/join/NestedLoopSemiAntiJoinTest.scala | 4 +-
.../plan/batch/sql/join/SemiAntiJoinTest.scala | 2 +-
.../plan/batch/sql/join/SemiAntiJoinTestBase.scala | 3 +-
.../plan/batch/sql/join/ShuffledHashJoinTest.scala | 71 +-
.../sql/join/ShuffledHashSemiAntiJoinTest.scala | 113 +-
.../plan/batch/sql/join/SingleRowJoinTest.scala | 2 +-
.../plan/batch/sql/join/SortMergeJoinTest.scala | 71 +-
.../batch/sql/join/SortMergeSemiAntiJoinTest.scala | 113 +-
.../batch/sql/join/TemporalFunctionJoinTest.scala | 30 +-
.../plan/batch/sql/join/TemporalJoinTest.scala | 25 +-
.../planner/plan/batch/table/AggregateTest.scala | 2 +-
.../table/planner/plan/batch/table/CalcTest.scala | 2 +-
.../plan/batch/table/ColumnFunctionsTest.scala | 2 +-
.../planner/plan/batch/table/CorrelateTest.scala | 2 +-
.../planner/plan/batch/table/GroupWindowTest.scala | 18 +-
.../table/planner/plan/batch/table/JoinTest.scala | 18 +-
.../plan/batch/table/PythonAggregateTest.scala | 8 +-
.../planner/plan/batch/table/PythonCalcTest.scala | 4 +-
.../table/PythonGroupWindowAggregateTest.scala | 18 +-
.../table/PythonOverWindowAggregateTest.scala | 8 +-
.../plan/batch/table/SetOperatorsTest.scala | 2 +-
.../table/TemporalTableFunctionJoinTest.scala | 18 +-
.../table/validation/AggregateValidationTest.scala | 142 +-
.../table/validation/CalcValidationTest.scala | 72 +-
.../table/validation/CorrelateValidationTest.scala | 18 +-
.../validation/GroupWindowValidationTest.scala | 142 +-
.../table/validation/JoinValidationTest.scala | 79 +-
.../validation/OverWindowValidationTest.scala | 21 +-
.../validation/SetOperatorsValidationTest.scala | 38 +-
.../table/validation/SortValidationTest.scala | 18 +-
.../common/AggregateReduceGroupingTestBase.scala | 4 +-
.../plan/common/DistinctAggregateTestBase.scala | 10 +-
.../planner/plan/common/JoinReorderTestBase.scala | 58 +-
.../planner/plan/common/PartialInsertTest.scala | 78 +-
.../planner/plan/common/TableFactoryTest.scala | 19 +-
.../table/planner/plan/common/UnnestTestBase.scala | 2 +-
.../planner/plan/common/ViewsExpandingTest.scala | 57 +-
.../table/planner/plan/hint/OptionsHintTest.scala | 57 +-
.../logical/AggregateReduceGroupingRuleTest.scala | 4 +-
.../logical/CalcPruneAggregateCallRuleTest.scala | 2 +
.../CalcPythonCorrelateTransposeRuleTest.scala | 4 +-
.../rules/logical/CalcRankTransposeRuleTest.scala | 4 +-
.../rules/logical/ConvertToNotInOrInRuleTest.scala | 4 +-
.../logical/CorrelateSortToRankRuleTest.scala | 4 +-
.../logical/DecomposeGroupingSetsRuleTest.scala | 8 +-
.../logical/ExpressionReductionRulesTest.scala | 2 +-
...AggregateExpandDistinctAggregatesRuleTest.scala | 4 +-
.../FlinkAggregateJoinTransposeRuleTest.scala | 4 +-
.../logical/FlinkAggregateRemoveRuleTest.scala | 4 +-
.../rules/logical/FlinkCalcMergeRuleTest.scala | 4 +-
.../logical/FlinkJoinPushExpressionsRuleTest.scala | 4 +-
.../logical/FlinkJoinToMultiJoinRuleTest.scala | 4 +-
.../rules/logical/FlinkLimit0RemoveRuleTest.scala | 4 +-
.../FlinkLogicalRankRuleForConstantRangeTest.scala | 2 +-
.../FlinkLogicalRankRuleForRangeEndTest.scala | 9 +-
.../rules/logical/FlinkPruneEmptyRulesTest.scala | 4 +-
.../FlinkSemiAntiJoinFilterTransposeRuleTest.scala | 4 +-
.../FlinkSemiAntiJoinJoinTransposeRuleTest.scala | 4 +-
...FlinkSemiAntiJoinProjectTransposeRuleTest.scala | 4 +-
.../JoinConditionEqualityTransferRuleTest.scala | 4 +-
.../logical/JoinConditionTypeCoerceRuleTest.scala | 4 +-
.../JoinDependentConditionDerivationRuleTest.scala | 4 +-
.../logical/JoinDeriveNullFilterRuleTest.scala | 4 +-
...lCorrelateToJoinFromTemporalTableRuleTest.scala | 55 +-
.../plan/rules/logical/LogicalUnnestRuleTest.scala | 4 +-
.../ProjectPruneAggregateCallRuleTest.scala | 2 +
.../ProjectSemiAntiJoinTransposeRuleTest.scala | 4 +-
...ojectWindowTableFunctionTransposeRuleTest.scala | 4 +-
.../logical/PruneAggregateCallRuleTestBase.scala | 4 +-
...shFilterIntoLegacyTableSourceScanRuleTest.scala | 4 +-
...ushLimitIntoLegacyTableSourceScanRuleTest.scala | 20 +-
...artitionIntoLegacyTableSourceScanRuleTest.scala | 48 +-
...hProjectIntoLegacyTableSourceScanRuleTest.scala | 4 +-
.../rules/logical/PythonCalcSplitRuleTest.scala | 4 +-
.../logical/PythonCorrelateSplitRuleTest.scala | 4 +-
.../rules/logical/PythonMapMergeRuleTest.scala | 4 +-
.../logical/RankNumberColumnRemoveRuleTest.scala | 4 +-
.../logical/RemoveSingleAggregateRuleTest.scala | 4 +-
.../ReplaceIntersectWithSemiJoinRuleTest.scala | 4 +-
.../logical/ReplaceMinusWithAntiJoinRuleTest.scala | 4 +-
.../logical/RewriteIntersectAllRuleTest.scala | 4 +-
.../rules/logical/RewriteMinusAllRuleTest.scala | 4 +-
.../RewriteMultiJoinConditionRuleTest.scala | 4 +-
.../logical/SimplifyFilterConditionRuleTest.scala | 4 +-
.../logical/SimplifyJoinConditionRuleTest.scala | 4 +-
.../rules/logical/SplitAggregateRuleTest.scala | 2 +-
...SplitPythonConditionFromCorrelateRuleTest.scala | 4 +-
.../SplitPythonConditionFromJoinRuleTest.scala | 4 +-
.../TemporalJoinRewriteWithUniqueKeyRuleTest.scala | 64 +-
.../rules/logical/WindowGroupReorderRuleTest.scala | 4 +-
.../subquery/FlinkRewriteSubQueryRuleTest.scala | 4 +-
.../logical/subquery/SubQueryAntiJoinTest.scala | 36 +-
.../logical/subquery/SubQuerySemiJoinTest.scala | 164 +--
.../SubqueryCorrelateVariablesValidationTest.scala | 23 +-
.../batch/EnforceLocalAggRuleTestBase.scala | 4 +-
.../batch/EnforceLocalHashAggRuleTest.scala | 4 +-
.../batch/EnforceLocalSortAggRuleTest.scala | 4 +-
.../RemoveRedundantLocalHashAggRuleTest.scala | 4 +-
.../batch/RemoveRedundantLocalRankRuleTest.scala | 4 +-
.../RemoveRedundantLocalSortAggRuleTest.scala | 4 +-
.../stream/ChangelogModeInferenceTest.scala | 4 +-
...xpandWindowTableFunctionTransposeRuleTest.scala | 4 +-
...signerChangelogNormalizeTransposeRuleTest.scala | 4 +-
.../table/planner/plan/stream/sql/CalcTest.scala | 10 +-
.../plan/stream/sql/DagOptimizationTest.scala | 2 +-
.../planner/plan/stream/sql/DeduplicateTest.scala | 4 +-
.../plan/stream/sql/FilterableSourceTest.scala | 4 +-
.../planner/plan/stream/sql/LegacySinkTest.scala | 18 +-
.../plan/stream/sql/LegacyTableSourceTest.scala | 4 +-
.../table/planner/plan/stream/sql/LimitTest.scala | 15 +-
.../plan/stream/sql/LimitableSourceTest.scala | 4 +-
.../plan/stream/sql/MatchRecognizeTest.scala | 52 +-
.../stream/sql/MiniBatchIntervalInferTest.scala | 4 +-
.../plan/stream/sql/ModifiedMonotonicityTest.scala | 6 +-
.../plan/stream/sql/NonDeterministicDagTest.scala | 1384 +++++++++++---------
.../plan/stream/sql/PartitionableSinkTest.scala | 17 +-
.../plan/stream/sql/PartitionableSourceTest.scala | 26 +-
.../table/planner/plan/stream/sql/RankTest.scala | 51 +-
.../stream/sql/RelTimeIndicatorConverterTest.scala | 2 +-
.../planner/plan/stream/sql/SetOperatorsTest.scala | 27 +-
.../planner/plan/stream/sql/SortLimitTest.scala | 2 +-
.../table/planner/plan/stream/sql/SortTest.scala | 2 +-
.../plan/stream/sql/SourceWatermarkTest.scala | 4 +-
.../planner/plan/stream/sql/SubplanReuseTest.scala | 4 +-
.../planner/plan/stream/sql/TableScanTest.scala | 84 +-
.../planner/plan/stream/sql/TableSinkTest.scala | 72 +-
.../planner/plan/stream/sql/TableSourceTest.scala | 16 +-
.../table/planner/plan/stream/sql/UnionTest.scala | 4 +-
.../table/planner/plan/stream/sql/UnnestTest.scala | 2 +-
.../table/planner/plan/stream/sql/ValuesTest.scala | 2 +-
.../plan/stream/sql/WindowDeduplicateTest.scala | 15 +-
.../planner/plan/stream/sql/WindowRankTest.scala | 61 +-
.../plan/stream/sql/WindowTableFunctionTest.scala | 20 +-
.../plan/stream/sql/agg/AggregateTest.scala | 24 +-
.../stream/sql/agg/DistinctAggregateTest.scala | 46 +-
.../plan/stream/sql/agg/GroupWindowTest.scala | 63 +-
.../plan/stream/sql/agg/GroupingSetsTest.scala | 13 +-
.../stream/sql/agg/IncrementalAggregateTest.scala | 12 +-
.../plan/stream/sql/agg/OverAggregateTest.scala | 31 +-
.../stream/sql/agg/TwoStageAggregateTest.scala | 4 +-
.../plan/stream/sql/agg/WindowAggregateTest.scala | 211 ++-
.../plan/stream/sql/join/IntervalJoinTest.scala | 31 +-
.../plan/stream/sql/join/JoinReorderTest.scala | 6 +-
.../planner/plan/stream/sql/join/JoinTest.scala | 2 +-
.../plan/stream/sql/join/LookupJoinTest.scala | 155 ++-
.../plan/stream/sql/join/SemiAntiJoinTest.scala | 2 +-
.../stream/sql/join/TemporalFunctionJoinTest.scala | 18 +-
.../plan/stream/sql/join/TemporalJoinTest.scala | 29 +-
.../plan/stream/sql/join/WindowJoinTest.scala | 21 +-
.../planner/plan/stream/table/AggregateTest.scala | 2 +-
.../table/planner/plan/stream/table/CalcTest.scala | 2 +-
.../plan/stream/table/ColumnFunctionsTest.scala | 2 +-
.../planner/plan/stream/table/CorrelateTest.scala | 2 +-
.../table/GroupWindowTableAggregateTest.scala | 2 +-
.../plan/stream/table/GroupWindowTest.scala | 2 +-
.../table/planner/plan/stream/table/JoinTest.scala | 2 +-
.../plan/stream/table/LegacyTableSourceTest.scala | 2 +-
.../plan/stream/table/OverAggregateTest.scala | 2 +-
.../plan/stream/table/PythonAggregateTest.scala | 32 +-
.../planner/plan/stream/table/PythonCalcTest.scala | 4 +-
.../table/PythonGroupWindowAggregateTest.scala | 14 +-
.../table/PythonOverWindowAggregateTest.scala | 2 +-
.../stream/table/PythonTableAggregateTest.scala | 2 +-
.../plan/stream/table/SetOperatorsTest.scala | 2 +-
.../plan/stream/table/TableAggregateTest.scala | 2 +-
.../plan/stream/table/TableSourceTest.scala | 20 +-
.../table/TemporalTableFunctionJoinTest.scala | 27 +-
.../plan/stream/table/TwoStageAggregateTest.scala | 4 +-
.../table/validation/AggregateValidationTest.scala | 114 +-
.../table/validation/CalcValidationTest.scala | 162 ++-
.../table/validation/CorrelateValidationTest.scala | 99 +-
.../GroupWindowTableAggregateValidationTest.scala | 44 +-
.../validation/GroupWindowValidationTest.scala | 301 +++--
.../validation/LegacyTableSinkValidationTest.scala | 67 +-
.../validation/OverWindowValidationTest.scala | 173 ++-
.../validation/SetOperatorsValidationTest.scala | 38 +-
.../validation/TableAggregateValidationTest.scala | 137 +-
.../TemporalTableJoinValidationTest.scala | 46 +-
292 files changed, 4915 insertions(+), 4260 deletions(-)
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/batch/sql/CalcMergeTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/batch/sql/CalcMergeTest.java
index 4a0e196f1cb..e9d25da76b3 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/batch/sql/CalcMergeTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/batch/sql/CalcMergeTest.java
@@ -23,7 +23,7 @@ import org.apache.flink.table.planner.plan.common.CalcMergeTestBase;
import org.apache.flink.table.planner.utils.TableTestUtil;
/** Plan test for calc merge. */
-public class CalcMergeTest extends CalcMergeTestBase {
+class CalcMergeTest extends CalcMergeTestBase {
@Override
protected boolean isBatchMode() {
return true;
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/batch/sql/DynamicFilteringTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/batch/sql/DynamicFilteringTest.java
index 682c19fbf2b..7d8fde57464 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/batch/sql/DynamicFilteringTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/batch/sql/DynamicFilteringTest.java
@@ -26,23 +26,24 @@ import org.apache.flink.table.api.config.ExecutionConfigOptions;
import org.apache.flink.table.planner.utils.BatchTableTestUtil;
import org.apache.flink.table.planner.utils.JavaScalaConversionUtil;
import org.apache.flink.table.planner.utils.TableTestBase;
+import org.apache.flink.testutils.junit.extensions.parameterized.ParameterizedTestExtension;
+import org.apache.flink.testutils.junit.extensions.parameterized.Parameters;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.TestTemplate;
+import org.junit.jupiter.api.extension.ExtendWith;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
/** Plan test for dynamic filtering. */
-@RunWith(Parameterized.class)
-public class DynamicFilteringTest extends TableTestBase {
+@ExtendWith(ParameterizedTestExtension.class)
+class DynamicFilteringTest extends TableTestBase {
// Notes that the here name is used to load the correct plan.
- @Parameterized.Parameters(name = "mode = {0}")
- public static Collection<Object[]> data() {
+ @Parameters(name = "mode = {0}")
+ private static Collection<Object[]> data() {
return Arrays.asList(
new Object[][] {
{BatchShuffleMode.ALL_EXCHANGES_BLOCKING},
@@ -52,14 +53,14 @@ public class DynamicFilteringTest extends TableTestBase {
private final BatchShuffleMode batchShuffleMode;
- public DynamicFilteringTest(BatchShuffleMode batchShuffleMode) {
+ DynamicFilteringTest(BatchShuffleMode batchShuffleMode) {
this.batchShuffleMode = batchShuffleMode;
}
private BatchTableTestUtil util;
- @Before
- public void before() {
+ @BeforeEach
+ void before() {
util = batchTestUtil(TableConfig.getDefault());
util.tableEnv()
.getConfig()
@@ -117,8 +118,8 @@ public class DynamicFilteringTest extends TableTestBase {
+ ")");
}
- @Test
- public void testLegacySource() {
+ @TestTemplate
+ void testLegacySource() {
util.tableEnv()
.executeSql(
"CREATE TABLE legacy_source (\n"
@@ -142,8 +143,8 @@ public class DynamicFilteringTest extends TableTestBase {
Collections.singletonList(ExplainDetail.JSON_EXECUTION_PLAN)));
}
- @Test
- public void testSimpleDynamicFiltering() {
+ @TestTemplate
+ void testSimpleDynamicFiltering() {
// the execution plan contains 'Placeholder-Filter' operator
util.verifyExplain(
"SELECT * FROM fact1, dim WHERE p1 = p AND x > 10",
@@ -151,8 +152,8 @@ public class DynamicFilteringTest extends TableTestBase {
Collections.singletonList(ExplainDetail.JSON_EXECUTION_PLAN)));
}
- @Test
- public void testDynamicFilteringWithMultipleInput() {
+ @TestTemplate
+ void testDynamicFilteringWithMultipleInput() {
// the execution plan does not contain 'Placeholder-Filter' operator
util.verifyExplain(
"SELECT * FROM fact1, dim, fact2 WHERE p1 = p and p1 = p2 AND x > 10",
@@ -160,8 +161,8 @@ public class DynamicFilteringTest extends TableTestBase {
Collections.singletonList(ExplainDetail.JSON_EXECUTION_PLAN)));
}
- @Test
- public void testDuplicateFactTables() {
+ @TestTemplate
+ void testDuplicateFactTables() {
// the fact tables can not be reused
util.verifyExplain(
"SELECT * FROM (SELECT * FROM fact1, dim WHERE p1 = p AND x > 10) t1 JOIN fact1 t2 ON t1.y = t2.b1",
@@ -169,8 +170,8 @@ public class DynamicFilteringTest extends TableTestBase {
Collections.singletonList(ExplainDetail.JSON_EXECUTION_PLAN)));
}
- @Test
- public void testReuseDimSide() {
+ @TestTemplate
+ void testReuseDimSide() {
// dynamic filtering collector will be reused for both fact tables
util.verifyExplain(
"SELECT * FROM fact1, dim WHERE p1 = p AND x > 10 "
@@ -180,8 +181,8 @@ public class DynamicFilteringTest extends TableTestBase {
Collections.singletonList(ExplainDetail.JSON_EXECUTION_PLAN)));
}
- @Test
- public void testDynamicFilteringWithStaticPartitionPruning() {
+ @TestTemplate
+ void testDynamicFilteringWithStaticPartitionPruning() {
util.verifyExplain(
"SELECT * FROM fact1, dim WHERE p1 = p AND x > 10 and p1 > 1",
JavaScalaConversionUtil.toScala(
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/batch/sql/DynamicFunctionPlanTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/batch/sql/DynamicFunctionPlanTest.java
index a765f94c881..2b2e64b4171 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/batch/sql/DynamicFunctionPlanTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/batch/sql/DynamicFunctionPlanTest.java
@@ -23,7 +23,7 @@ import org.apache.flink.table.planner.plan.common.DynamicFunctionPlanTestBase;
import org.apache.flink.table.planner.utils.TableTestUtil;
/** Plan test for queries contain dynamic functions in batch. */
-public class DynamicFunctionPlanTest extends DynamicFunctionPlanTestBase {
+class DynamicFunctionPlanTest extends DynamicFunctionPlanTestBase {
@Override
protected TableTestUtil getTableTestUtil() {
return batchTestUtil(TableConfig.getDefault());
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/batch/sql/ForwardHashExchangeTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/batch/sql/ForwardHashExchangeTest.java
index 33fe021ac3e..eaf2202a11f 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/batch/sql/ForwardHashExchangeTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/batch/sql/ForwardHashExchangeTest.java
@@ -23,16 +23,16 @@ import org.apache.flink.table.api.config.OptimizerConfigOptions;
import org.apache.flink.table.planner.utils.BatchTableTestUtil;
import org.apache.flink.table.planner.utils.TableTestBase;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
/** Tests for ForwardHashExchangeProcessor. */
-public class ForwardHashExchangeTest extends TableTestBase {
+class ForwardHashExchangeTest extends TableTestBase {
private BatchTableTestUtil util;
- @Before
- public void before() {
+ @BeforeEach
+ void before() {
util = batchTestUtil(TableConfig.getDefault());
util.tableEnv()
@@ -77,13 +77,13 @@ public class ForwardHashExchangeTest extends TableTestBase {
}
@Test
- public void testRankWithHashShuffle() {
+ void testRankWithHashShuffle() {
util.verifyExecPlan(
"SELECT * FROM (SELECT a, b, RANK() OVER(PARTITION BY a ORDER BY b) rk FROM T) WHERE rk <= 10");
}
@Test
- public void testSortAggregateWithHashShuffle() {
+ void testSortAggregateWithHashShuffle() {
util.tableEnv()
.getConfig()
.set(ExecutionConfigOptions.TABLE_EXEC_DISABLED_OPERATORS, "HashAgg");
@@ -91,7 +91,7 @@ public class ForwardHashExchangeTest extends TableTestBase {
}
@Test
- public void testOverAggOnHashAggWithHashShuffle() {
+ void testOverAggOnHashAggWithHashShuffle() {
util.tableEnv()
.getConfig()
.set(ExecutionConfigOptions.TABLE_EXEC_DISABLED_OPERATORS, "SortAgg");
@@ -106,7 +106,7 @@ public class ForwardHashExchangeTest extends TableTestBase {
}
@Test
- public void testOverAggOnHashAggWithGlobalShuffle() {
+ void testOverAggOnHashAggWithGlobalShuffle() {
util.tableEnv()
.getConfig()
.set(ExecutionConfigOptions.TABLE_EXEC_DISABLED_OPERATORS, "SortAgg");
@@ -114,7 +114,7 @@ public class ForwardHashExchangeTest extends TableTestBase {
}
@Test
- public void testOverAggOnSortAggWithHashShuffle() {
+ void testOverAggOnSortAggWithHashShuffle() {
util.tableEnv()
.getConfig()
.set(ExecutionConfigOptions.TABLE_EXEC_DISABLED_OPERATORS, "HashAgg");
@@ -129,7 +129,7 @@ public class ForwardHashExchangeTest extends TableTestBase {
}
@Test
- public void testOverAggOnSortAggWithGlobalShuffle() {
+ void testOverAggOnSortAggWithGlobalShuffle() {
util.tableEnv()
.getConfig()
.set(ExecutionConfigOptions.TABLE_EXEC_DISABLED_OPERATORS, "HashAgg");
@@ -137,7 +137,7 @@ public class ForwardHashExchangeTest extends TableTestBase {
}
@Test
- public void testHashAggOnHashJoinWithHashShuffle() {
+ void testHashAggOnHashJoinWithHashShuffle() {
util.tableEnv()
.getConfig()
.set(
@@ -149,7 +149,7 @@ public class ForwardHashExchangeTest extends TableTestBase {
}
@Test
- public void testOnePhaseSortAggOnSortMergeJoinWithHashShuffle() {
+ void testOnePhaseSortAggOnSortMergeJoinWithHashShuffle() {
util.tableEnv()
.getConfig()
.set(
@@ -164,7 +164,7 @@ public class ForwardHashExchangeTest extends TableTestBase {
}
@Test
- public void testTwoPhaseSortAggOnSortMergeJoinWithHashShuffle() {
+ void testTwoPhaseSortAggOnSortMergeJoinWithHashShuffle() {
util.tableEnv()
.getConfig()
.set(
@@ -179,7 +179,7 @@ public class ForwardHashExchangeTest extends TableTestBase {
}
@Test
- public void testAutoPhaseSortAggOnSortMergeJoinWithHashShuffle() {
+ void testAutoPhaseSortAggOnSortMergeJoinWithHashShuffle() {
util.tableEnv()
.getConfig()
.set(
@@ -194,7 +194,7 @@ public class ForwardHashExchangeTest extends TableTestBase {
}
@Test
- public void testHashAggOnNestedLoopJoinWithGlobalShuffle() {
+ void testHashAggOnNestedLoopJoinWithGlobalShuffle() {
util.tableEnv()
.getConfig()
.set(ExecutionConfigOptions.TABLE_EXEC_DISABLED_OPERATORS, "SortAgg");
@@ -208,7 +208,7 @@ public class ForwardHashExchangeTest extends TableTestBase {
}
@Test
- public void testSortAggOnNestedLoopJoinWithGlobalShuffle() {
+ void testSortAggOnNestedLoopJoinWithGlobalShuffle() {
util.tableEnv()
.getConfig()
.set(ExecutionConfigOptions.TABLE_EXEC_DISABLED_OPERATORS, "HashAgg");
@@ -222,7 +222,7 @@ public class ForwardHashExchangeTest extends TableTestBase {
}
@Test
- public void testRankOnHashAggWithHashShuffle() {
+ void testRankOnHashAggWithHashShuffle() {
util.tableEnv()
.getConfig()
.set(ExecutionConfigOptions.TABLE_EXEC_DISABLED_OPERATORS, "SortAgg");
@@ -235,7 +235,7 @@ public class ForwardHashExchangeTest extends TableTestBase {
}
@Test
- public void testRankOnHashAggWithGlobalShuffle() {
+ void testRankOnHashAggWithGlobalShuffle() {
util.tableEnv()
.getConfig()
.set(ExecutionConfigOptions.TABLE_EXEC_DISABLED_OPERATORS, "SortAgg");
@@ -248,7 +248,7 @@ public class ForwardHashExchangeTest extends TableTestBase {
}
@Test
- public void testRankOnOnePhaseSortAggWithHashShuffle() {
+ void testRankOnOnePhaseSortAggWithHashShuffle() {
util.tableEnv()
.getConfig()
.set(ExecutionConfigOptions.TABLE_EXEC_DISABLED_OPERATORS, "HashAgg");
@@ -264,7 +264,7 @@ public class ForwardHashExchangeTest extends TableTestBase {
}
@Test
- public void testRankOnTwoPhaseSortAggWithHashShuffle() {
+ void testRankOnTwoPhaseSortAggWithHashShuffle() {
util.tableEnv()
.getConfig()
.set(ExecutionConfigOptions.TABLE_EXEC_DISABLED_OPERATORS, "HashAgg");
@@ -280,7 +280,7 @@ public class ForwardHashExchangeTest extends TableTestBase {
}
@Test
- public void testRankOnOnePhaseSortAggWithGlobalShuffle() {
+ void testRankOnOnePhaseSortAggWithGlobalShuffle() {
util.tableEnv()
.getConfig()
.set(ExecutionConfigOptions.TABLE_EXEC_DISABLED_OPERATORS, "HashAgg");
@@ -296,7 +296,7 @@ public class ForwardHashExchangeTest extends TableTestBase {
}
@Test
- public void testRankOnTwoPhaseSortAggWithGlobalShuffle() {
+ void testRankOnTwoPhaseSortAggWithGlobalShuffle() {
util.tableEnv()
.getConfig()
.set(ExecutionConfigOptions.TABLE_EXEC_DISABLED_OPERATORS, "HashAgg");
@@ -312,7 +312,7 @@ public class ForwardHashExchangeTest extends TableTestBase {
}
@Test
- public void testHashJoinWithMultipleInputDisabled() {
+ void testHashJoinWithMultipleInputDisabled() {
util.tableEnv()
.getConfig()
.set(
@@ -328,7 +328,7 @@ public class ForwardHashExchangeTest extends TableTestBase {
}
@Test
- public void testSortJoinWithMultipleInputDisabled() {
+ void testSortJoinWithMultipleInputDisabled() {
util.tableEnv()
.getConfig()
.set(
@@ -344,7 +344,7 @@ public class ForwardHashExchangeTest extends TableTestBase {
}
@Test
- public void testMultipleInputs() {
+ void testMultipleInputs() {
util.getTableEnv()
.getConfig()
.set(OptimizerConfigOptions.TABLE_OPTIMIZER_JOIN_REORDER_ENABLED, false)
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/batch/sql/MatchRecognizeTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/batch/sql/MatchRecognizeTest.java
index eca0bb0cfcf..b5e42f7819e 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/batch/sql/MatchRecognizeTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/batch/sql/MatchRecognizeTest.java
@@ -22,17 +22,17 @@ import org.apache.flink.table.planner.utils.BatchTableTestUtil;
import org.apache.flink.table.planner.utils.TableTestBase;
import org.apache.calcite.sql.SqlMatchRecognize;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
/** Tests for {@link SqlMatchRecognize}. */
-public class MatchRecognizeTest extends TableTestBase {
+class MatchRecognizeTest extends TableTestBase {
private BatchTableTestUtil util;
- @Before
- public void before() {
+ @BeforeEach
+ void before() {
util = batchTestUtil(TableConfig.getDefault());
util.getTableEnv()
.executeSql(
@@ -47,13 +47,13 @@ public class MatchRecognizeTest extends TableTestBase {
+ ")");
}
- @After
- public void after() {
+ @AfterEach
+ void after() {
util.getTableEnv().executeSql("DROP TABLE Ticker");
}
@Test
- public void testCascadeMatch() {
+ void testCascadeMatch() {
String sqlQuery =
"SELECT *\n"
+ "FROM (\n"
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/batch/sql/RowLevelDeleteTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/batch/sql/RowLevelDeleteTest.java
index 7bc295ce6fd..874de69f3a8 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/batch/sql/RowLevelDeleteTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/batch/sql/RowLevelDeleteTest.java
@@ -25,11 +25,12 @@ import org.apache.flink.table.connector.sink.abilities.SupportsRowLevelDelete;
import org.apache.flink.table.planner.utils.BatchTableTestUtil;
import org.apache.flink.table.planner.utils.JavaScalaConversionUtil;
import org.apache.flink.table.planner.utils.TableTestBase;
+import org.apache.flink.testutils.junit.extensions.parameterized.ParameterizedTestExtension;
+import org.apache.flink.testutils.junit.extensions.parameterized.Parameters;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.TestTemplate;
+import org.junit.jupiter.api.extension.ExtendWith;
import java.util.Arrays;
import java.util.Collection;
@@ -38,8 +39,8 @@ import java.util.Collections;
import scala.collection.Seq;
/** Test for row-level delete. */
-@RunWith(Parameterized.class)
-public class RowLevelDeleteTest extends TableTestBase {
+@ExtendWith(ParameterizedTestExtension.class)
+class RowLevelDeleteTest extends TableTestBase {
private final SupportsRowLevelDelete.RowLevelDeleteMode deleteMode;
private final Seq<ExplainDetail> explainDetails =
@@ -48,19 +49,19 @@ public class RowLevelDeleteTest extends TableTestBase {
private BatchTableTestUtil util;
- @Parameterized.Parameters(name = "deleteMode = {0}")
- public static Collection<SupportsRowLevelDelete.RowLevelDeleteMode> data() {
+ @Parameters(name = "deleteMode = {0}")
+ private static Collection<SupportsRowLevelDelete.RowLevelDeleteMode> data() {
return Arrays.asList(
SupportsRowLevelDelete.RowLevelDeleteMode.DELETED_ROWS,
SupportsRowLevelDelete.RowLevelDeleteMode.REMAINING_ROWS);
}
- public RowLevelDeleteTest(SupportsRowLevelDelete.RowLevelDeleteMode deleteMode) {
+ RowLevelDeleteTest(SupportsRowLevelDelete.RowLevelDeleteMode deleteMode) {
this.deleteMode = deleteMode;
}
- @Before
- public void before() {
+ @BeforeEach
+ void before() {
util = batchTestUtil(TableConfig.getDefault());
util.tableEnv()
.getConfig()
@@ -68,27 +69,27 @@ public class RowLevelDeleteTest extends TableTestBase {
.set(ExecutionConfigOptions.TABLE_EXEC_RESOURCE_DEFAULT_PARALLELISM, 12);
}
- @Test
- public void testDeleteWithoutFilter() {
+ @TestTemplate
+ void testDeleteWithoutFilter() {
createTableForDelete();
util.verifyExplainInsert("DELETE FROM t", explainDetails);
}
- @Test
- public void testDeleteWithFilter() {
+ @TestTemplate
+ void testDeleteWithFilter() {
createTableForDelete();
util.verifyExplainInsert("DELETE FROM t where a = 1 and b = '123'", explainDetails);
}
- @Test
- public void testDeleteWithSubQuery() {
+ @TestTemplate
+ void testDeleteWithSubQuery() {
createTableForDelete();
util.verifyExplainInsert(
"DELETE FROM t where b = '123' and a = (select count(*) from t)", explainDetails);
}
- @Test
- public void testDeleteWithCustomColumns() {
+ @TestTemplate
+ void testDeleteWithCustomColumns() {
util.tableEnv()
.executeSql(
String.format(
@@ -102,8 +103,8 @@ public class RowLevelDeleteTest extends TableTestBase {
util.verifyExplainInsert("DELETE FROM t where b = '123'", explainDetails);
}
- @Test
- public void testDeleteWithMetaColumns() {
+ @TestTemplate
+ void testDeleteWithMetaColumns() {
util.tableEnv()
.executeSql(
String.format(
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/batch/sql/RowLevelUpdateTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/batch/sql/RowLevelUpdateTest.java
index 22a09cd3159..57f22238d05 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/batch/sql/RowLevelUpdateTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/batch/sql/RowLevelUpdateTest.java
@@ -26,11 +26,12 @@ import org.apache.flink.table.connector.sink.abilities.SupportsRowLevelUpdate;
import org.apache.flink.table.planner.utils.BatchTableTestUtil;
import org.apache.flink.table.planner.utils.JavaScalaConversionUtil;
import org.apache.flink.table.planner.utils.TableTestBase;
+import org.apache.flink.testutils.junit.extensions.parameterized.ParameterizedTestExtension;
+import org.apache.flink.testutils.junit.extensions.parameterized.Parameters;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.TestTemplate;
+import org.junit.jupiter.api.extension.ExtendWith;
import java.util.Arrays;
import java.util.Collection;
@@ -38,9 +39,11 @@ import java.util.Collections;
import scala.collection.Seq;
+import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
+
/** Test for row-level update. */
-@RunWith(Parameterized.class)
-public class RowLevelUpdateTest extends TableTestBase {
+@ExtendWith(ParameterizedTestExtension.class)
+class RowLevelUpdateTest extends TableTestBase {
private final Seq<ExplainDetail> explainDetails =
JavaScalaConversionUtil.toScala(
@@ -49,19 +52,19 @@ public class RowLevelUpdateTest extends TableTestBase {
private BatchTableTestUtil util;
- @Parameterized.Parameters(name = "updateMode = {0}")
- public static Collection<SupportsRowLevelUpdate.RowLevelUpdateMode> data() {
+ @Parameters(name = "updateMode = {0}")
+ private static Collection<SupportsRowLevelUpdate.RowLevelUpdateMode> data() {
return Arrays.asList(
SupportsRowLevelUpdate.RowLevelUpdateMode.UPDATED_ROWS,
SupportsRowLevelUpdate.RowLevelUpdateMode.ALL_ROWS);
}
- public RowLevelUpdateTest(SupportsRowLevelUpdate.RowLevelUpdateMode updateMode) {
+ RowLevelUpdateTest(SupportsRowLevelUpdate.RowLevelUpdateMode updateMode) {
this.updateMode = updateMode;
}
- @Before
- public void before() {
+ @BeforeEach
+ void before() {
util = batchTestUtil(TableConfig.getDefault());
util.tableEnv()
.getConfig()
@@ -69,21 +72,21 @@ public class RowLevelUpdateTest extends TableTestBase {
.set(ExecutionConfigOptions.TABLE_EXEC_RESOURCE_DEFAULT_PARALLELISM, 12);
}
- @Test
- public void testUpdateWithoutFilter() {
+ @TestTemplate
+ void testUpdateWithoutFilter() {
createTableForUpdate();
util.verifyExplainInsert("UPDATE t SET b = 'n1', a = char_length(b) * a ", explainDetails);
}
- @Test
- public void testUpdateWithFilter() {
+ @TestTemplate
+ void testUpdateWithFilter() {
createTableForUpdate();
util.verifyExplainInsert(
"UPDATE t SET b = 'v2' WHERE a = 123 AND b = 'v1'", explainDetails);
}
- @Test
- public void testUpdateWithSubQuery() {
+ @TestTemplate
+ void testUpdateWithSubQuery() {
createTableForUpdate();
util.tableEnv()
.executeSql(
@@ -95,8 +98,8 @@ public class RowLevelUpdateTest extends TableTestBase {
"UPDATE t SET b = 'v2' WHERE a = (SELECT count(*) FROM t1)", explainDetails);
}
- @Test
- public void testUpdateAllColsWithOnlyRequireUpdatedCols() {
+ @TestTemplate
+ void testUpdateAllColsWithOnlyRequireUpdatedCols() {
util.tableEnv()
.executeSql(
String.format(
@@ -110,8 +113,8 @@ public class RowLevelUpdateTest extends TableTestBase {
"UPDATE t SET b = 'v2', a = 123, c = c + 1 WHERE c > 123", explainDetails);
}
- @Test
- public void testUpdatePartColsWithOnlyRequireUpdatedCols() {
+ @TestTemplate
+ void testUpdatePartColsWithOnlyRequireUpdatedCols() {
util.tableEnv()
.executeSql(
String.format(
@@ -125,8 +128,8 @@ public class RowLevelUpdateTest extends TableTestBase {
"UPDATE t SET b = 'v2', a = 123, c = c + 1 WHERE c > 123", explainDetails);
}
- @Test
- public void testUpdateWithCustomColumns() {
+ @TestTemplate
+ void testUpdateWithCustomColumns() {
util.tableEnv()
.executeSql(
String.format(
@@ -140,8 +143,8 @@ public class RowLevelUpdateTest extends TableTestBase {
util.verifyExplainInsert("UPDATE t SET b = 'v2' WHERE b = '123'", explainDetails);
}
- @Test
- public void testUpdateWithMetaColumns() {
+ @TestTemplate
+ void testUpdateWithMetaColumns() {
util.tableEnv()
.executeSql(
String.format(
@@ -155,8 +158,8 @@ public class RowLevelUpdateTest extends TableTestBase {
util.verifyExplainInsert("UPDATE t SET b = 'v2' WHERE b = '123'", explainDetails);
}
- @Test(expected = SqlParserException.class)
- public void testUpdateWithCompositeType() {
+ @TestTemplate
+ void testUpdateWithCompositeType() {
util.tableEnv()
.executeSql(
String.format(
@@ -169,8 +172,13 @@ public class RowLevelUpdateTest extends TableTestBase {
+ "'update-mode' = '%s'"
+ ") ",
updateMode));
- util.verifyExplainInsert(
- "UPDATE t SET b.b1 = 'v2', c.c1 = 1000 WHERE b = '123'", explainDetails);
+
+ assertThatExceptionOfType(SqlParserException.class)
+ .isThrownBy(
+ () ->
+ util.verifyExplainInsert(
+ "UPDATE t SET b.b1 = 'v2', c.c1 = 1000 WHERE b = '123'",
+ explainDetails));
}
private void createTableForUpdate() {
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/batch/sql/TimeTravelTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/batch/sql/TimeTravelTest.java
index 92b0a16bbe6..89acd62c5d6 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/batch/sql/TimeTravelTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/batch/sql/TimeTravelTest.java
@@ -28,20 +28,20 @@ import org.apache.flink.table.planner.utils.BatchTableTestUtil;
import org.apache.flink.table.planner.utils.DateTimeTestUtil;
import org.apache.flink.table.planner.utils.TableTestBase;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
import java.time.ZoneId;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
/** Plan tests for time travel. */
-public class TimeTravelTest extends TableTestBase {
+class TimeTravelTest extends TableTestBase {
private BatchTableTestUtil util;
- @Before
- public void before() {
+ @BeforeEach
+ void before() {
util = batchTestUtil(TableConfig.getDefault());
String catalogName = "TimeTravelCatalog";
TestTimeTravelCatalog catalog =
@@ -53,25 +53,25 @@ public class TimeTravelTest extends TableTestBase {
}
@Test
- public void testTimeTravel() {
+ void testTimeTravel() {
util.verifyExecPlan(
"SELECT * FROM t1 FOR SYSTEM_TIME AS OF TIMESTAMP '2023-01-01 02:00:00'");
}
@Test
- public void testTimeTravelWithAsExpression() {
+ void testTimeTravelWithAsExpression() {
util.verifyExecPlan(
"SELECT * FROM t1 FOR SYSTEM_TIME AS OF TIMESTAMP '2023-01-01 02:00:00' AS t2");
}
@Test
- public void testTimeTravelWithSimpleExpression() {
+ void testTimeTravelWithSimpleExpression() {
util.verifyExecPlan(
"SELECT * FROM t1 FOR SYSTEM_TIME AS OF TIMESTAMP '2023-01-01 00:00:00'+INTERVAL '60' DAY");
}
@Test
- public void testTimeTravelWithDifferentTimezone() {
+ void testTimeTravelWithDifferentTimezone() {
util.tableEnv().getConfig().setLocalTimeZone(ZoneId.of("Asia/Shanghai"));
util.verifyExecPlan(
@@ -85,7 +85,7 @@ public class TimeTravelTest extends TableTestBase {
}
@Test
- public void testTimeTravelOneTableMultiTimes() {
+ void testTimeTravelOneTableMultiTimes() {
util.verifyExecPlan(
"SELECT\n"
+ " f1\n"
@@ -99,7 +99,7 @@ public class TimeTravelTest extends TableTestBase {
}
@Test
- public void testTimeTravelWithLookupJoin() {
+ void testTimeTravelWithLookupJoin() {
util.verifyExecPlan(
"SELECT\n"
+ " l.f2,\n"
@@ -116,13 +116,13 @@ public class TimeTravelTest extends TableTestBase {
}
@Test
- public void testTimeTravelWithHints() {
+ void testTimeTravelWithHints() {
util.verifyExecPlan(
"SELECT * FROM t1 /*+ options('bounded'='true') */ FOR SYSTEM_TIME AS OF TIMESTAMP '2023-01-01 02:00:00' AS t2");
}
@Test
- public void testTimeTravelWithUnsupportedExpression() {
+ void testTimeTravelWithUnsupportedExpression() {
assertThatThrownBy(
() ->
util.tableEnv()
@@ -149,7 +149,7 @@ public class TimeTravelTest extends TableTestBase {
}
@Test
- public void testTimeTravelWithIdentifierSnapshot() {
+ void testTimeTravelWithIdentifierSnapshot() {
util.tableEnv()
.executeSql(
"CREATE TABLE\n"
@@ -173,7 +173,7 @@ public class TimeTravelTest extends TableTestBase {
}
@Test
- public void testTimeTravelWithView() {
+ void testTimeTravelWithView() {
util.tableEnv().executeSql("CREATE VIEW tb_view AS SELECT * FROM t1");
assertThatThrownBy(
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/common/CalcMergeTestBase.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/common/CalcMergeTestBase.java
index 1f8cf1caad2..728ef1edfdb 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/common/CalcMergeTestBase.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/common/CalcMergeTestBase.java
@@ -22,8 +22,8 @@ import org.apache.flink.table.planner.runtime.utils.JavaUserDefinedScalarFunctio
import org.apache.flink.table.planner.utils.TableTestBase;
import org.apache.flink.table.planner.utils.TableTestUtil;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
/**
* Base plan test for calc merge, the difference between FlinkCalcMergeRuleTest is this test
@@ -37,8 +37,8 @@ public abstract class CalcMergeTestBase extends TableTestBase {
protected abstract TableTestUtil getTableTestUtil();
- @Before
- public void setup() {
+ @BeforeEach
+ void setup() {
util = getTableTestUtil();
util.tableEnv()
@@ -57,59 +57,59 @@ public abstract class CalcMergeTestBase extends TableTestBase {
}
@Test
- public void testCalcMergeWithSameDigest() {
+ void testCalcMergeWithSameDigest() {
util.verifyExecPlan("SELECT a, b FROM (SELECT * FROM MyTable WHERE a = b) t WHERE b = a");
}
@Test
- public void testCalcMergeWithNonDeterministicExpr1() {
+ void testCalcMergeWithNonDeterministicExpr1() {
util.verifyExecPlan(
"SELECT a, a1 FROM (SELECT a, random_udf(a) AS a1 FROM MyTable) t WHERE a1 > 10");
}
@Test
- public void testCalcMergeWithNonDeterministicExpr2() {
+ void testCalcMergeWithNonDeterministicExpr2() {
util.verifyExecPlan(
"SELECT random_udf(a1) as a2 FROM (SELECT random_udf(a) as"
+ " a1, b FROM MyTable) t WHERE b > 10");
}
@Test
- public void testCalcMergeWithTopMultiNonDeterministicExpr() {
+ void testCalcMergeWithTopMultiNonDeterministicExpr() {
util.verifyExecPlan(
"SELECT random_udf(a1) as a2, random_udf(a1) as a3 FROM"
+ " (SELECT random_udf(a) as a1, b FROM MyTable) t WHERE b > 10");
}
@Test
- public void testCalcMergeTopFilterHasNonDeterministicExpr() {
+ void testCalcMergeTopFilterHasNonDeterministicExpr() {
util.verifyExecPlan(
"SELECT a, c FROM"
+ " (SELECT a, random_udf(b) as b1, c FROM MyTable) t WHERE b1 > 10");
}
@Test
- public void testCalcMergeWithBottomMultiNonDeterministicExpr() {
+ void testCalcMergeWithBottomMultiNonDeterministicExpr() {
util.verifyExecPlan(
"SELECT a1, b2 FROM"
+ " (SELECT random_udf(a) as a1, random_udf(b) as b2, c FROM MyTable) t WHERE c > 10");
}
@Test
- public void testCalcMergeWithBottomMultiNonDeterministicInConditionExpr() {
+ void testCalcMergeWithBottomMultiNonDeterministicInConditionExpr() {
util.verifyExecPlan(
"SELECT c FROM"
+ " (SELECT random_udf(a) as a1, random_udf(b) as b2, c FROM MyTable) t WHERE a1 > b2");
}
@Test
- public void testCalcMergeWithoutInnerNonDeterministicExpr() {
+ void testCalcMergeWithoutInnerNonDeterministicExpr() {
util.verifyExecPlan(
"SELECT a, c FROM (SELECT a, random_udf(a) as a1, c FROM MyTable) t WHERE c > 10");
}
@Test
- public void testCalcMergeWithNonDeterministicNestedExpr() {
+ void testCalcMergeWithNonDeterministicNestedExpr() {
util.verifyExecPlan(
"SELECT a, a1 FROM (SELECT a, substr(cast(random_udf(a) as varchar), 1, 2) AS a1 FROM MyTable) t WHERE a1 > '10'");
}
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/common/DynamicFunctionPlanTestBase.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/common/DynamicFunctionPlanTestBase.java
index 22140d384a6..78b414954c2 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/common/DynamicFunctionPlanTestBase.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/common/DynamicFunctionPlanTestBase.java
@@ -21,8 +21,8 @@ package org.apache.flink.table.planner.plan.common;
import org.apache.flink.table.planner.utils.TableTestBase;
import org.apache.flink.table.planner.utils.TableTestUtil;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
/** Plan test for queries contain dynamic functions. */
public abstract class DynamicFunctionPlanTestBase extends TableTestBase {
@@ -33,8 +33,8 @@ public abstract class DynamicFunctionPlanTestBase extends TableTestBase {
protected abstract TableTestUtil getTableTestUtil();
- @Before
- public void setup() {
+ @BeforeEach
+ void setup() {
util = getTableTestUtil();
util.tableEnv()
@@ -56,7 +56,7 @@ public abstract class DynamicFunctionPlanTestBase extends TableTestBase {
}
@Test
- public void testAggregateReduceConstants() {
+ void testAggregateReduceConstants() {
util.verifyExecPlan(
"SELECT\n"
+ " cat, gmt_date, SUM(cnt), count(*)\n"
@@ -66,7 +66,7 @@ public abstract class DynamicFunctionPlanTestBase extends TableTestBase {
}
@Test
- public void testAggregateReduceConstants2() {
+ void testAggregateReduceConstants2() {
// current RelMdPredicates only look at columns that are projected without any function
// applied, so 'SUBSTR(CAST(LOCALTIME AS VARCHAR), 1, 2)' will never be inferred as constant
util.verifyExecPlan(
@@ -78,7 +78,7 @@ public abstract class DynamicFunctionPlanTestBase extends TableTestBase {
}
@Test
- public void testAggregateReduceConstants3() {
+ void testAggregateReduceConstants3() {
util.verifyExecPlan(
"SELECT\n"
+ " gmt_date, ts, cat, SUBSTR(CAST(ts AS VARCHAR), 1, 2), SUM(cnt)\n"
@@ -89,7 +89,7 @@ public abstract class DynamicFunctionPlanTestBase extends TableTestBase {
}
@Test
- public void testCalcMerge() {
+ void testCalcMerge() {
util.verifyExecPlan(
"SELECT * FROM ( \n"
+ " SELECT *, SUBSTR(CAST(LOCALTIME AS VARCHAR), 1, 2) hh\n"
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/hints/batch/BroadcastJoinHintTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/hints/batch/BroadcastJoinHintTest.java
index 1b93904339a..23fd75908ae 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/hints/batch/BroadcastJoinHintTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/hints/batch/BroadcastJoinHintTest.java
@@ -21,7 +21,7 @@ package org.apache.flink.table.planner.plan.hints.batch;
import org.apache.flink.table.planner.hint.JoinStrategy;
/** Test for Broadcast join hint. */
-public class BroadcastJoinHintTest extends JoinHintTestBase {
+class BroadcastJoinHintTest extends JoinHintTestBase {
@Override
protected String getTestSingleJoinHint() {
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/hints/batch/JoinHintTestBase.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/hints/batch/JoinHintTestBase.java
index 829581d4823..eada3bb3881 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/hints/batch/JoinHintTestBase.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/hints/batch/JoinHintTestBase.java
@@ -36,14 +36,15 @@ import org.apache.flink.shaded.curator5.org.apache.curator.shaded.com.google.com
import org.apache.calcite.rel.RelNode;
import org.apache.calcite.sql.SqlExplainLevel;
import org.apache.logging.log4j.util.Strings;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
import java.util.List;
import java.util.stream.Collectors;
import scala.Enumeration;
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
import static scala.runtime.BoxedUnit.UNIT;
/**
@@ -62,8 +63,8 @@ public abstract class JoinHintTestBase extends TableTestBase {
.map(JoinStrategy::getJoinHintName)
.collect(Collectors.toList());
- @Before
- public void before() {
+ @BeforeEach
+ void before() {
util = batchTestUtil(TableConfig.getDefault());
util.tableEnv()
.executeSql(
@@ -130,21 +131,21 @@ public abstract class JoinHintTestBase extends TableTestBase {
}
@Test
- public void testSimpleJoinHintWithLeftSideAsBuildSide() {
+ void testSimpleJoinHintWithLeftSideAsBuildSide() {
String sql = "select /*+ %s(T1) */* from T1 join T2 on T1.a1 = T2.a2";
verifyRelPlanByCustom(String.format(sql, getTestSingleJoinHint()));
}
@Test
- public void testSimpleJoinHintWithRightSideAsBuildSide() {
+ void testSimpleJoinHintWithRightSideAsBuildSide() {
String sql = "select /*+ %s(T2) */* from T1 join T2 on T1.a1 = T2.a2";
verifyRelPlanByCustom(String.format(sql, getTestSingleJoinHint()));
}
@Test
- public void testJoinHintWithMultiJoinAndFirstSideAsBuildSide1() {
+ void testJoinHintWithMultiJoinAndFirstSideAsBuildSide1() {
// the T1 will be the build side in first join
String sql =
"select /*+ %s(T1, T2) */* from T1, T2, T3 where T1.a1 = T2.a2 and T1.b1 = T3.b3";
@@ -153,7 +154,7 @@ public abstract class JoinHintTestBase extends TableTestBase {
}
@Test
- public void testJoinHintWithMultiJoinAndFirstSideAsBuildSide2() {
+ void testJoinHintWithMultiJoinAndFirstSideAsBuildSide2() {
String sql =
"select /*+ %s(T1, T2) */* from T1, T2, T3 where T1.a1 = T2.a2 and T2.b2 = T3.b3";
@@ -161,7 +162,7 @@ public abstract class JoinHintTestBase extends TableTestBase {
}
@Test
- public void testJoinHintWithMultiJoinAndSecondThirdSideAsBuildSides1() {
+ void testJoinHintWithMultiJoinAndSecondThirdSideAsBuildSides1() {
String sql =
"select /*+ %s(T2, T3) */* from T1, T2, T3 where T1.a1 = T2.a2 and T1.b1 = T3.b3";
@@ -169,7 +170,7 @@ public abstract class JoinHintTestBase extends TableTestBase {
}
@Test
- public void testJoinHintWithMultiJoinAndSecondThirdSideAsBuildSides2() {
+ void testJoinHintWithMultiJoinAndSecondThirdSideAsBuildSides2() {
String sql =
"select /*+ %s(T2, T3) */* from T1, T2, T3 where T1.a1 = T2.a2 and T2.b2 = T3.b3";
@@ -177,7 +178,7 @@ public abstract class JoinHintTestBase extends TableTestBase {
}
@Test
- public void testJoinHintWithMultiJoinAndFirstThirdSideAsBuildSides() {
+ void testJoinHintWithMultiJoinAndFirstThirdSideAsBuildSides() {
String sql =
"select /*+ %s(T1, T3) */* from T1, T2, T3 where T1.a1 = T2.a2 and T2.b2 = T3.b3";
@@ -185,95 +186,90 @@ public abstract class JoinHintTestBase extends TableTestBase {
}
@Test
- public void testJoinHintWithUnknownTable() {
- thrown().expect(ValidationException.class);
- thrown().expectMessage(
- String.format(
- "The options of following hints cannot match the name of input tables or views: \n`%s` in `%s`",
- "T99", getTestSingleJoinHint()));
+ void testJoinHintWithUnknownTable() {
String sql = "select /*+ %s(T99) */* from T1 join T2 on T1.a1 = T2.a2";
- verifyRelPlanByCustom(String.format(sql, getTestSingleJoinHint()));
+ assertThatThrownBy(() -> verifyRelPlanByCustom(String.format(sql, getTestSingleJoinHint())))
+ .isInstanceOf(ValidationException.class)
+ .hasMessageContaining(
+ "The options of following hints cannot match the name of input tables or views: \n`%s` in `%s`",
+ "T99", getTestSingleJoinHint());
}
@Test
- public void testJoinHintWithUnknownTableNameMixedWithValidTableNames1() {
- thrown().expect(ValidationException.class);
- thrown().expectMessage(
- String.format(
- "The options of following hints cannot match the name of input tables or views: \n`%s` in `%s`",
- "T99", getTestSingleJoinHint()));
+ void testJoinHintWithUnknownTableNameMixedWithValidTableNames1() {
String sql = "select /*+ %s(T1, T99) */* from T1 join T2 on T1.a1 = T2.a2";
- verifyRelPlanByCustom(String.format(sql, getTestSingleJoinHint()));
+ assertThatThrownBy(() -> verifyRelPlanByCustom(String.format(sql, getTestSingleJoinHint())))
+ .isInstanceOf(ValidationException.class)
+ .hasMessageContaining(
+ "The options of following hints cannot match the name of input tables or views: \n`%s` in `%s`",
+ "T99", getTestSingleJoinHint());
}
@Test
- public void testJoinHintWithUnknownTableNameMixedWithValidTableNames2() {
- thrown().expect(ValidationException.class);
- thrown().expectMessage(
- String.format(
- "The options of following hints cannot match the name of input tables or views: \n`%s` in `%s`",
- "T99", getTestSingleJoinHint()));
+ void testJoinHintWithUnknownTableNameMixedWithValidTableNames2() {
String sql = "select /*+ %s(T1, T99, T2) */* from T1 join T2 on T1.a1 = T2.a2";
- verifyRelPlanByCustom(String.format(sql, getTestSingleJoinHint()));
+ assertThatThrownBy(() -> verifyRelPlanByCustom(String.format(sql, getTestSingleJoinHint())))
+ .isInstanceOf(ValidationException.class)
+ .hasMessageContaining(
+ "The options of following hints cannot match the name of input tables or views: \n`%s` in `%s`",
+ "T99", getTestSingleJoinHint());
}
@Test
- public void testJoinHintWithMultiUnknownTableNamesMixedWithValidTableNames() {
- thrown().expect(ValidationException.class);
- thrown().expectMessage(
- String.format(
- "The options of following hints cannot match the name of input tables or views: \n`%s` in `%s`",
- "T98, T99", getTestSingleJoinHint()));
+ void testJoinHintWithMultiUnknownTableNamesMixedWithValidTableNames() {
String sql = "select /*+ %s(T1, T99, T98) */* from T1 join T2 on T1.a1 = T2.a2";
- verifyRelPlanByCustom(String.format(sql, getTestSingleJoinHint()));
+ assertThatThrownBy(() -> verifyRelPlanByCustom(String.format(sql, getTestSingleJoinHint())))
+ .isInstanceOf(ValidationException.class)
+ .hasMessageContaining(
+ "The options of following hints cannot match the name of input tables or views: \n`%s` in `%s`",
+ "T98, T99", getTestSingleJoinHint());
}
@Test
- public void testJoinHintWithView() {
+ void testJoinHintWithView() {
String sql = "select /*+ %s(V4) */* from T1 join V4 on T1.a1 = V4.a4";
verifyRelPlanByCustom(String.format(sql, getTestSingleJoinHint()));
}
@Test
- public void testJoinHintWithUnknownView() {
- thrown().expect(ValidationException.class);
- thrown().expectMessage(
- String.format(
- "The options of following hints cannot match the name of input tables or views: \n`%s` in `%s`",
- "V99", getTestSingleJoinHint()));
+ void testJoinHintWithUnknownView() {
String sql = "select /*+ %s(V99) */* from T1 join V4 on T1.a1 = V4.a4";
- verifyRelPlanByCustom(String.format(sql, getTestSingleJoinHint()));
+ assertThatThrownBy(() -> verifyRelPlanByCustom(String.format(sql, getTestSingleJoinHint())))
+ .isInstanceOf(ValidationException.class)
+ .hasMessageContaining(
+ "The options of following hints cannot match the name of input tables or views: \n`%s` in `%s`",
+ "V99", getTestSingleJoinHint());
}
@Test
- public void testJoinHintWithEquiPred() {
+ void testJoinHintWithEquiPred() {
String sql = "select /*+ %s(T1) */* from T1, T2 where T1.a1 = T2.a2";
verifyRelPlanByCustom(String.format(sql, getTestSingleJoinHint()));
}
@Test
- public void testJoinHintWithEquiPredAndFilter() {
+ void testJoinHintWithEquiPredAndFilter() {
String sql = "select /*+ %s(T1) */* from T1, T2 where T1.a1 = T2.a2 and T1.a1 > 1";
verifyRelPlanByCustom(String.format(sql, getTestSingleJoinHint()));
}
@Test
- public void testJoinHintWithEquiAndLocalPred() {
+ void testJoinHintWithEquiAndLocalPred() {
String sql = "select /*+ %s(T1) */* from T1 inner join T2 on T1.a1 = T2.a2 and T1.a1 < 1";
verifyRelPlanByCustom(String.format(sql, getTestSingleJoinHint()));
}
@Test
- public void testJoinHintWithEquiAndNonEquiPred() {
+ void testJoinHintWithEquiAndNonEquiPred() {
String sql =
"select /*+ %s(T1) */* from T1 inner join T2 on T1.b1 = T2.b2 and T1.a1 < 1 and T1.a1 < T2.a2";
@@ -281,56 +277,56 @@ public abstract class JoinHintTestBase extends TableTestBase {
}
@Test
- public void testJoinHintWithoutJoinPred() {
+ void testJoinHintWithoutJoinPred() {
String sql = "select /*+ %s(T1) */* from T1, T2";
verifyRelPlanByCustom(String.format(sql, getTestSingleJoinHint()));
}
@Test
- public void testJoinHintWithNonEquiPred() {
+ void testJoinHintWithNonEquiPred() {
String sql = "select /*+ %s(T1) */* from T1 inner join T2 on T1.a1 > T2.a2";
verifyRelPlanByCustom(String.format(sql, getTestSingleJoinHint()));
}
@Test
- public void testJoinHintWithLeftJoinAndLeftSideAsBuildSide() {
+ void testJoinHintWithLeftJoinAndLeftSideAsBuildSide() {
String sql = "select /*+ %s(T1) */* from T1 left join T2 on T1.a1 = T2.a2";
verifyRelPlanByCustom(String.format(sql, getTestSingleJoinHint()));
}
@Test
- public void testJoinHintWithLeftJoinAndRightSideAsBuildSide() {
+ void testJoinHintWithLeftJoinAndRightSideAsBuildSide() {
String sql = "select /*+ %s(T2) */* from T1 left join T2 on T1.a1 = T2.a2";
verifyRelPlanByCustom(String.format(sql, getTestSingleJoinHint()));
}
@Test
- public void testJoinHintWithRightJoinAndLeftSideAsBuildSide() {
+ void testJoinHintWithRightJoinAndLeftSideAsBuildSide() {
String sql = "select /*+ %s(T1) */* from T1 right join T2 on T1.a1 = T2.a2";
verifyRelPlanByCustom(String.format(sql, getTestSingleJoinHint()));
}
@Test
- public void testJoinHintWithRightJoinAndRightSideAsBuildSide() {
+ void testJoinHintWithRightJoinAndRightSideAsBuildSide() {
String sql = "select /*+ %s(T2) */* from T1 right join T2 on T1.a1 = T2.a2";
verifyRelPlanByCustom(String.format(sql, getTestSingleJoinHint()));
}
@Test
- public void testJoinHintWithFullJoinAndLeftSideAsBuildSide() {
+ void testJoinHintWithFullJoinAndLeftSideAsBuildSide() {
String sql = "select /*+ %s(T1) */* from T1 full join T2 on T1.a1 = T2.a2";
verifyRelPlanByCustom(String.format(sql, getTestSingleJoinHint()));
}
@Test
- public void testJoinHintWithFullJoinAndRightSideAsBuildSide() {
+ void testJoinHintWithFullJoinAndRightSideAsBuildSide() {
String sql = "select /*+ %s(T2) */* from T1 full join T2 on T1.a1 = T2.a2";
verifyRelPlanByCustom(String.format(sql, getTestSingleJoinHint()));
@@ -339,7 +335,7 @@ public abstract class JoinHintTestBase extends TableTestBase {
// TODO currently join hint is not supported on SEMI join, it will use default join strategy by
// planner
@Test
- public void testJoinHintWithSemiJoinAndLeftSideAsBuildSide() {
+ void testJoinHintWithSemiJoinAndLeftSideAsBuildSide() {
String sql = "select /*+ %s(T1) */* from T1 where a1 in (select a2 from T2)";
verifyRelPlanByCustom(String.format(sql, getTestSingleJoinHint()));
@@ -348,7 +344,7 @@ public abstract class JoinHintTestBase extends TableTestBase {
// TODO currently join hint is not supported on SEMI join, it will use default join strategy by
// planner
@Test
- public void testJoinHintWithSemiJoinAndRightSideAsBuildSide() {
+ void testJoinHintWithSemiJoinAndRightSideAsBuildSide() {
String sql = "select /*+ %s(T2) */* from T1 where a1 in (select a2 from T2)";
verifyRelPlanByCustom(String.format(sql, getTestSingleJoinHint()));
@@ -357,7 +353,7 @@ public abstract class JoinHintTestBase extends TableTestBase {
// TODO currently join hint is not supported on ANTI join, it will use default join strategy by
// planner
@Test
- public void testJoinHintWithAntiJoinAndLeftSideAsBuildSide() {
+ void testJoinHintWithAntiJoinAndLeftSideAsBuildSide() {
String sql = "select /*+ %s(T1) */* from T1 where a1 not in (select a2 from T2)";
verifyRelPlanByCustom(String.format(sql, getTestSingleJoinHint()));
@@ -366,14 +362,14 @@ public abstract class JoinHintTestBase extends TableTestBase {
// TODO currently join hint is not supported on ANTI join, it will use default join strategy by
// planner
@Test
- public void testJoinHintWithAntiJoinAndRightSideAsBuildSide() {
+ void testJoinHintWithAntiJoinAndRightSideAsBuildSide() {
String sql = "select /*+ %s(T2) */* from T1 where a1 not in (select a2 from T2)";
verifyRelPlanByCustom(String.format(sql, getTestSingleJoinHint()));
}
@Test
- public void testJoinHintWithMultiArgsAndLeftSideFirst() {
+ void testJoinHintWithMultiArgsAndLeftSideFirst() {
// the first arg will be chosen as the build side
String sql = "select /*+ %s(T1, T2) */* from T1 right join T2 on T1.a1 = T2.a2";
@@ -381,7 +377,7 @@ public abstract class JoinHintTestBase extends TableTestBase {
}
@Test
- public void testJoinHintWithMultiArgsAndRightSideFirst() {
+ void testJoinHintWithMultiArgsAndRightSideFirst() {
// the first arg will be chosen as the build side
String sql = "select /*+ %s(T2, T1) */* from T1 right join T2 on T1.a1 = T2.a2";
@@ -389,7 +385,7 @@ public abstract class JoinHintTestBase extends TableTestBase {
}
@Test
- public void testMultiJoinHints() {
+ void testMultiJoinHints() {
// the first join hint will be chosen
String sql = "select /*+ %s(T1), %s */* from T1 join T2 on T1.a1 = T2.a2";
@@ -404,7 +400,7 @@ public abstract class JoinHintTestBase extends TableTestBase {
}
@Test
- public void testMultiJoinHintsWithTheFirstOneIsInvalid() {
+ void testMultiJoinHintsWithTheFirstOneIsInvalid() {
// the first join hint is invalid because it is not equi join except NEST_LOOP
String sql = "select /*+ %s(T1), NEST_LOOP(T1) */* from T1 join T2 on T1.a1 > T2.a2";
@@ -412,7 +408,7 @@ public abstract class JoinHintTestBase extends TableTestBase {
}
@Test
- public void testJoinHintWithoutAffectingJoinInViewWhileArgsCanBeFoundInOuterJoin() {
+ void testJoinHintWithoutAffectingJoinInViewWhileArgsCanBeFoundInOuterJoin() {
// the join in V2 will use the planner's default join strategy,
// and the join between T1 and V5 will use the tested join hint
String sql = "select /*+ %s(T1)*/T1.* from T1 join V5 on T1.a1 = V5.a1";
@@ -421,7 +417,7 @@ public abstract class JoinHintTestBase extends TableTestBase {
}
@Test
- public void testJoinHintWithoutAffectingJoinInViewWhileOuterQueryIsNotJoin() {
+ void testJoinHintWithoutAffectingJoinInViewWhileOuterQueryIsNotJoin() {
// the join in V2 will use the planner's default join strategy,
// and the join between T1 and V5 will use the tested join hint
String sql = "select /*+ %s(T1)*/* from V5";
@@ -430,7 +426,7 @@ public abstract class JoinHintTestBase extends TableTestBase {
}
@Test
- public void testJoinHintWithoutAffectingJoinInViewWhileRootOfViewIsFilter() {
+ void testJoinHintWithoutAffectingJoinInViewWhileRootOfViewIsFilter() {
// the join in V2 will use the planner's default join strategy,
// and the join between T1 and V2 will use the tested join hint
util.tableEnv()
@@ -443,7 +439,7 @@ public abstract class JoinHintTestBase extends TableTestBase {
}
@Test
- public void testJoinHintWithSimpleSumInSelectList() {
+ void testJoinHintWithSimpleSumInSelectList() {
String sql =
"select /*+ %s(T1)*/T1.b1, sum(T1.a1) from T1 join T2 on T1.b1 = T2.b2 group by T1.b1";
@@ -451,7 +447,7 @@ public abstract class JoinHintTestBase extends TableTestBase {
}
@Test
- public void testJoinHintWithCastInSelectList() {
+ void testJoinHintWithCastInSelectList() {
String sql =
"select /*+ %s(T1)*/T1.b1, cast(T1.a1 as int) from T1 join T2 on T1.b1 = T2.b2";
@@ -459,7 +455,7 @@ public abstract class JoinHintTestBase extends TableTestBase {
}
@Test
- public void testJoinHintWithoutAffectingJoinInSubQueryWhileArgsCanBeFoundInOuterJoin() {
+ void testJoinHintWithoutAffectingJoinInSubQueryWhileArgsCanBeFoundInOuterJoin() {
// the join in sub-query will use the planner's default join strategy,
// and the join outside will use the tested join hint
String sql =
@@ -469,14 +465,14 @@ public abstract class JoinHintTestBase extends TableTestBase {
}
@Test
- public void testJoinHintWithoutAffectingJoinInSubQueryWhileOuterQueryIsNotJoin() {
+ void testJoinHintWithoutAffectingJoinInSubQueryWhileOuterQueryIsNotJoin() {
String sql = "select /*+ %s(T1)*/* from (select T1.* from T1 join T2 on T1.a1 = T2.a2)";
verifyRelPlanByCustom(String.format(sql, getTestSingleJoinHint()));
}
@Test
- public void testJoinHintWithoutAffectingJoinInSubQueryWhileRootOfSubQueryIsFilter() {
+ void testJoinHintWithoutAffectingJoinInSubQueryWhileRootOfSubQueryIsFilter() {
String sql =
"select /*+ %s(T1)*/* from (select T1.* from T1 join T2 on T1.a1 = T2.a2 where T1.b1 = 'abc')";
@@ -484,7 +480,7 @@ public abstract class JoinHintTestBase extends TableTestBase {
}
@Test
- public void testJoinHintWithoutAffectingJoinInSubQueryWhileContainsSumInQueryBlock() {
+ void testJoinHintWithoutAffectingJoinInSubQueryWhileContainsSumInQueryBlock() {
String sql =
"select /*+ %s(T1)*/T4.a1, (select count(*) from T1 join T3 on T1.a1 = T3.a3) as cnt from (select T1.* from T1 join T2 on T1.a1 = T2.a2 where T1.b1 = 'abc') T4";
@@ -492,7 +488,7 @@ public abstract class JoinHintTestBase extends TableTestBase {
}
@Test
- public void testJoinHintWithoutAffectingJoinInSubQueryWhileContainsUnionAndJoinInSelectList() {
+ void testJoinHintWithoutAffectingJoinInSubQueryWhileContainsUnionAndJoinInSelectList() {
String sql =
"select /*+ %s(T1)*/T4.a1, (select count(*) from T1 join ((select T1.a1 as a3 from T1) union (select a3 from T3)) T3 on T1.a1 = T3.a3 where T3.a3 = 1) as cnt from (select T1.* from T1 join T2 on T1.a1 = T2.a2) T4";
@@ -500,7 +496,7 @@ public abstract class JoinHintTestBase extends TableTestBase {
}
@Test
- public void testJoinHintWithoutAffectingJoinInSubQueryWhileContainsUnionAndJoinInSelectFrom() {
+ void testJoinHintWithoutAffectingJoinInSubQueryWhileContainsUnionAndJoinInSelectFrom() {
String sql =
"select /*+ %s(T1)*/T4.a1 from (select T1.* from T1 join ((select T1.a1 as a2 from T1) union (select a2 from T2)) T2 on T1.a1 = T2.a2) T4";
@@ -508,7 +504,7 @@ public abstract class JoinHintTestBase extends TableTestBase {
}
@Test
- public void testJoinHintWithTableAlias() {
+ void testJoinHintWithTableAlias() {
// the join in sub-query will use the planner's default join strategy,
// and the join between T1 and alias V2 will use the tested join hint
String sql =
@@ -518,7 +514,7 @@ public abstract class JoinHintTestBase extends TableTestBase {
}
@Test
- public void testJoinHintsWithMultiSameJoinHintsAndSingleArg() {
+ void testJoinHintsWithMultiSameJoinHintsAndSingleArg() {
// the first join hint will be chosen and T1 will be chosen as the build side
String sql = "select /*+ %s(T1), %s(T2) */* from T1 join T2 on T1.a1 = T2.a2";
@@ -526,7 +522,7 @@ public abstract class JoinHintTestBase extends TableTestBase {
}
@Test
- public void testJoinHintsWithDuplicatedArgs() {
+ void testJoinHintsWithDuplicatedArgs() {
// T1 will be chosen as the build side
String sql = "select /*+ %s(T1, T1) */* from T1 join T2 on T1.a1 = T2.a2";
@@ -534,7 +530,7 @@ public abstract class JoinHintTestBase extends TableTestBase {
}
@Test
- public void testJoinHintsWithMultiSameJoinHintsAndMultiArgs() {
+ void testJoinHintsWithMultiSameJoinHintsAndMultiArgs() {
// the first join hint will be chosen and T1 will be chosen as the build side
String sql = "select /*+ %s(T1, T2), %s(T2, T1) */* from T1 join T2 on T1.a1 = T2.a2";
@@ -542,16 +538,22 @@ public abstract class JoinHintTestBase extends TableTestBase {
}
@Test
- public void testJoinHintsWithMultiHintsThrowException() {
- thrown().expect(SqlParserException.class);
- thrown().expectMessage("SQL parse failed.");
+ void testJoinHintsWithMultiHintsThrowException() {
String sql = "select /*+ %s(T1) */ /*+ %s(T2) */ * from T1 join T2 on T1.a1 = T2.a2";
- verifyRelPlanByCustom(String.format(sql, getTestSingleJoinHint(), getTestSingleJoinHint()));
+ assertThatThrownBy(
+ () ->
+ verifyRelPlanByCustom(
+ String.format(
+ sql,
+ getTestSingleJoinHint(),
+ getTestSingleJoinHint())))
+ .isInstanceOf(SqlParserException.class)
+ .hasMessageContaining("SQL parse failed.");
}
@Test
- public void testJoinHintWithDisabledOperator() {
+ void testJoinHintWithDisabledOperator() {
util.tableEnv()
.getConfig()
.set(
@@ -564,7 +566,7 @@ public abstract class JoinHintTestBase extends TableTestBase {
}
@Test
- public void testJoinHintsWithUnion() {
+ void testJoinHintsWithUnion() {
// there are two query blocks and join hints are independent
String sql =
"select /*+ %s(T1) */* from T1 join T2 on T1.a1 = T2.a2 union select /*+ %s(T3) */* from T3 join T1 on T3.a3 = T1.a1";
@@ -573,7 +575,7 @@ public abstract class JoinHintTestBase extends TableTestBase {
}
@Test
- public void testJoinHintsWithFilter() {
+ void testJoinHintsWithFilter() {
// there are two query blocks and join hints are independent
String sql = "select /*+ %s(T1) */* from T1 join T2 on T1.a1 = T2.a2 where T1.a1 > 5";
@@ -581,7 +583,7 @@ public abstract class JoinHintTestBase extends TableTestBase {
}
@Test
- public void testJoinHintsWithCalc() {
+ void testJoinHintsWithCalc() {
// there are two query blocks and join hints are independent
String sql = "select /*+ %s(T1) */a1 + 1, a1 * 10 from T1 join T2 on T1.a1 = T2.a2";
@@ -589,7 +591,7 @@ public abstract class JoinHintTestBase extends TableTestBase {
}
@Test
- public void testJoinHintInView() {
+ void testJoinHintInView() {
// the build side in view is left
util.tableEnv()
.executeSql(
@@ -604,7 +606,7 @@ public abstract class JoinHintTestBase extends TableTestBase {
}
@Test
- public void testJoinHintInMultiLevelView() {
+ void testJoinHintInMultiLevelView() {
// the inside view keeps multi alias
// the build side in this view is left
util.tableEnv()
@@ -627,7 +629,7 @@ public abstract class JoinHintTestBase extends TableTestBase {
}
@Test
- public void testJoinHintsOnSameViewWithoutReusingView() {
+ void testJoinHintsOnSameViewWithoutReusingView() {
// the build side in this view is left
util.tableEnv()
.executeSql(
@@ -671,7 +673,7 @@ public abstract class JoinHintTestBase extends TableTestBase {
}
@Test
- public void testJoinHintsOnSameViewWithReusingView() {
+ void testJoinHintsOnSameViewWithReusingView() {
util.tableEnv()
.getConfig()
.set(
@@ -722,7 +724,7 @@ public abstract class JoinHintTestBase extends TableTestBase {
}
@Test
- public void testJoinHintsOnSameViewWithoutReusingViewBecauseDifferentJoinHints() {
+ void testJoinHintsOnSameViewWithoutReusingViewBecauseDifferentJoinHints() {
util.tableEnv()
.getConfig()
.set(
@@ -781,7 +783,7 @@ public abstract class JoinHintTestBase extends TableTestBase {
}
@Test
- public void testJoinHintWithSubStringViewName1() {
+ void testJoinHintWithSubStringViewName1() {
util.tableEnv()
.executeSql(
String.format(
@@ -802,7 +804,7 @@ public abstract class JoinHintTestBase extends TableTestBase {
}
@Test
- public void testJoinHintWithSubStringViewName2() {
+ void testJoinHintWithSubStringViewName2() {
util.tableEnv()
.executeSql(
String.format(
@@ -823,14 +825,14 @@ public abstract class JoinHintTestBase extends TableTestBase {
}
@Test
- public void testJoinHintWithoutCaseSensitive() {
+ void testJoinHintWithoutCaseSensitive() {
String sql = "select /*+ %s(T1) */* from T1 join T2 on T1.a1 = T2.a2";
verifyRelPlanByCustom(String.format(sql, buildCaseSensitiveStr(getTestSingleJoinHint())));
}
@Test
- public void testJoinHintWithJoinHintInSubQuery() {
+ void testJoinHintWithJoinHintInSubQuery() {
String sql =
"select * from T1 WHERE a1 IN (select /*+ %s(T2) */ a2 from T2 join T3 on T2.a2 = T3.a3)";
@@ -838,7 +840,7 @@ public abstract class JoinHintTestBase extends TableTestBase {
}
@Test
- public void testJoinHintWithJoinHintInCorrelateAndWithFilter() {
+ void testJoinHintWithJoinHintInCorrelateAndWithFilter() {
String sql =
"select * from T1 WHERE a1 IN (select /*+ %s(T2) */ a2 from T2 join T3 on T2.a2 = T3.a3 where T1.a1 = T2.a2)";
@@ -846,7 +848,7 @@ public abstract class JoinHintTestBase extends TableTestBase {
}
@Test
- public void testJoinHintWithJoinHintInCorrelateAndWithProject() {
+ void testJoinHintWithJoinHintInCorrelateAndWithProject() {
String sql =
"select * from T1 WHERE a1 IN (select /*+ %s(T2) */ a2 + T1.a1 from T2 join T3 on T2.a2 = T3.a3)";
@@ -854,7 +856,7 @@ public abstract class JoinHintTestBase extends TableTestBase {
}
@Test
- public void testJoinHintWithJoinHintInCorrelateAndWithAgg() {
+ void testJoinHintWithJoinHintInCorrelateAndWithAgg() {
String sql =
"select * from T1 WHERE a1 IN (select /*+ %s(T2) */ count(T2.a2) from T2 join T1 on T2.a2 = T1.a1 group by T1.a1)";
@@ -862,7 +864,7 @@ public abstract class JoinHintTestBase extends TableTestBase {
}
@Test
- public void testJoinHintWithJoinHintInCorrelateAndWithSortLimit() {
+ void testJoinHintWithJoinHintInCorrelateAndWithSortLimit() {
String sql =
"select * from T1 WHERE a1 IN (select /*+ %s(T2) */ T2.a2 from T2 join T1 on T2.a2 = T1.a1 order by T1.a1 limit 10)";
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/hints/batch/NestLoopJoinHintTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/hints/batch/NestLoopJoinHintTest.java
index 1daf888052e..2e70b6abe5f 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/hints/batch/NestLoopJoinHintTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/hints/batch/NestLoopJoinHintTest.java
@@ -21,7 +21,7 @@ package org.apache.flink.table.planner.plan.hints.batch;
import org.apache.flink.table.planner.hint.JoinStrategy;
/** Test for Nest Loop join hint. */
-public class NestLoopJoinHintTest extends JoinHintTestBase {
+class NestLoopJoinHintTest extends JoinHintTestBase {
@Override
protected String getTestSingleJoinHint() {
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/hints/batch/ShuffleHashJoinHintTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/hints/batch/ShuffleHashJoinHintTest.java
index cc9f2be89e2..42e512a7866 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/hints/batch/ShuffleHashJoinHintTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/hints/batch/ShuffleHashJoinHintTest.java
@@ -21,7 +21,7 @@ package org.apache.flink.table.planner.plan.hints.batch;
import org.apache.flink.table.planner.hint.JoinStrategy;
/** Test for Shuffle Hash join hint. */
-public class ShuffleHashJoinHintTest extends JoinHintTestBase {
+class ShuffleHashJoinHintTest extends JoinHintTestBase {
@Override
protected String getTestSingleJoinHint() {
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/hints/batch/ShuffleMergeJoinHintTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/hints/batch/ShuffleMergeJoinHintTest.java
index deaa6c97b88..a28be93a79e 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/hints/batch/ShuffleMergeJoinHintTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/hints/batch/ShuffleMergeJoinHintTest.java
@@ -21,7 +21,7 @@ package org.apache.flink.table.planner.plan.hints.batch;
import org.apache.flink.table.planner.hint.JoinStrategy;
/** Test for Shuffle Merge join hint. */
-public class ShuffleMergeJoinHintTest extends JoinHintTestBase {
+class ShuffleMergeJoinHintTest extends JoinHintTestBase {
@Override
protected String getTestSingleJoinHint() {
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/UnsupportedNodesInPlanTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/UnsupportedNodesInPlanTest.java
index 6f1a0adce9d..39540efb0ef 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/UnsupportedNodesInPlanTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/UnsupportedNodesInPlanTest.java
@@ -23,15 +23,15 @@ import org.apache.flink.table.api.PlanReference;
import org.apache.flink.table.api.TableEnvironment;
import org.apache.flink.table.planner.utils.TableTestBase;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
/** Tests for deserialising invalid {@link org.apache.flink.table.api.CompiledPlan}. */
-public class UnsupportedNodesInPlanTest extends TableTestBase {
+class UnsupportedNodesInPlanTest extends TableTestBase {
@Test
- public void testInvalidType() {
+ void testInvalidType() {
final TableEnvironment tEnv =
TableEnvironment.create(EnvironmentSettings.inStreamingMode());
assertThatThrownBy(
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/operator/BatchOperatorNameTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/operator/BatchOperatorNameTest.java
index 80c8baa66e0..bd0bf014d92 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/operator/BatchOperatorNameTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/operator/BatchOperatorNameTest.java
@@ -30,20 +30,20 @@ import org.apache.flink.table.sinks.TableSink;
import org.apache.flink.table.types.logical.LogicalType;
import org.apache.flink.types.Row;
-import org.junit.Test;
+import org.junit.jupiter.api.TestTemplate;
import java.util.Optional;
/** Tests for verifying name and description of batch sql operator. */
-public class BatchOperatorNameTest extends OperatorNameTestBase {
+class BatchOperatorNameTest extends OperatorNameTestBase {
@Override
protected TableTestUtil getTableTestUtil() {
return batchTestUtil(TableConfig.getDefault());
}
- @Test
- public void testBoundedStreamScan() {
+ @TestTemplate
+ void testBoundedStreamScan() {
final DataStream<Integer> dataStream = util.getStreamEnv().fromElements(1, 2, 3, 4, 5);
TableTestUtil.createTemporaryView(
tEnv,
@@ -56,23 +56,23 @@ public class BatchOperatorNameTest extends OperatorNameTestBase {
}
/** Verify Expand, HashAggregate. */
- @Test
- public void testHashAggregate() {
+ @TestTemplate
+ void testHashAggregate() {
createTestSource();
verifyQuery("SELECT a, " + "count(distinct b) as b " + "FROM MyTable GROUP BY a");
}
/** Verify Sort, SortAggregate. */
- @Test
- public void testSortAggregate() {
+ @TestTemplate
+ void testSortAggregate() {
tEnv.getConfig().set(ExecutionConfigOptions.TABLE_EXEC_DISABLED_OPERATORS, "HashAgg");
createTestSource();
verifyQuery("SELECT a, " + "count(distinct b) as b " + "FROM MyTable GROUP BY a");
}
/** Verify SortWindowAggregate. */
- @Test
- public void testSortWindowAggregate() {
+ @TestTemplate
+ void testSortWindowAggregate() {
createSourceWithTimeAttribute();
verifyQuery(
"SELECT\n"
@@ -84,14 +84,14 @@ public class BatchOperatorNameTest extends OperatorNameTestBase {
}
/** Verify HashJoin. */
- @Test
- public void testHashJoin() {
+ @TestTemplate
+ void testHashJoin() {
testJoinInternal();
}
/** Verify NestedLoopJoin. */
- @Test
- public void testNestedLoopJoin() {
+ @TestTemplate
+ void testNestedLoopJoin() {
tEnv.getConfig()
.set(
ExecutionConfigOptions.TABLE_EXEC_DISABLED_OPERATORS,
@@ -100,8 +100,8 @@ public class BatchOperatorNameTest extends OperatorNameTestBase {
}
/** Verify SortMergeJoin. */
- @Test
- public void testSortMergeJoin() {
+ @TestTemplate
+ void testSortMergeJoin() {
tEnv.getConfig()
.set(
ExecutionConfigOptions.TABLE_EXEC_DISABLED_OPERATORS,
@@ -110,8 +110,8 @@ public class BatchOperatorNameTest extends OperatorNameTestBase {
}
/** Verify MultiInput. */
- @Test
- public void testMultiInput() {
+ @TestTemplate
+ void testMultiInput() {
createTestSource("A");
createTestSource("B");
createTestSource("C");
@@ -119,21 +119,21 @@ public class BatchOperatorNameTest extends OperatorNameTestBase {
}
/** Verify Limit. */
- @Test
- public void testLimit() {
+ @TestTemplate
+ void testLimit() {
createTestSource();
verifyQuery("select * from MyTable limit 10");
}
/** Verify SortLimit. */
- @Test
- public void testSortLimit() {
+ @TestTemplate
+ void testSortLimit() {
createTestSource();
verifyQuery("select * from MyTable order by a limit 10");
}
- @Test
- public void testLegacySourceSink() {
+ @TestTemplate
+ void testLegacySourceSink() {
TableSchema schema = TestLegacyFilterableTableSource.defaultSchema();
TestLegacyFilterableTableSource.createTemporaryTable(
tEnv,
@@ -153,8 +153,8 @@ public class BatchOperatorNameTest extends OperatorNameTestBase {
verifyInsert("insert into MySink select * from MySource");
}
- @Test
- public void testMatch() {
+ @TestTemplate
+ void testMatch() {
createSourceWithTimeAttribute();
String sql =
"SELECT T.aid, T.bid, T.cid\n"
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/operator/OperatorNameTestBase.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/operator/OperatorNameTestBase.java
index 82c3fbfa055..991d42c88b0 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/operator/OperatorNameTestBase.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/operator/OperatorNameTestBase.java
@@ -25,30 +25,32 @@ import org.apache.flink.table.planner.utils.JavaScalaConversionUtil;
import org.apache.flink.table.planner.utils.TableFunc1;
import org.apache.flink.table.planner.utils.TableTestBase;
import org.apache.flink.table.planner.utils.TableTestUtil;
+import org.apache.flink.testutils.junit.extensions.parameterized.Parameter;
+import org.apache.flink.testutils.junit.extensions.parameterized.ParameterizedTestExtension;
+import org.apache.flink.testutils.junit.extensions.parameterized.Parameters;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.TestTemplate;
+import org.junit.jupiter.api.extension.ExtendWith;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
/** Base class for verifying name and description of SQL operators. */
-@RunWith(Parameterized.class)
-public abstract class OperatorNameTestBase extends TableTestBase {
- @Parameterized.Parameter public boolean isNameSimplifyEnabled;
+@ExtendWith(ParameterizedTestExtension.class)
+abstract class OperatorNameTestBase extends TableTestBase {
+ @Parameter private boolean isNameSimplifyEnabled;
protected TableTestUtil util;
protected TableEnvironment tEnv;
- @Parameterized.Parameters(name = "isNameSimplifyEnabled={0}")
- public static List<Boolean> testData() {
+ @Parameters(name = "isNameSimplifyEnabled={0}")
+ private static List<Boolean> testData() {
return Arrays.asList(true, false);
}
- @Before
- public void setup() {
+ @BeforeEach
+ void setup() {
util = getTableTestUtil();
util.getStreamEnv().setParallelism(2);
tEnv = util.getTableEnv();
@@ -73,16 +75,16 @@ public abstract class OperatorNameTestBase extends TableTestBase {
}
/** Verify Correlate and Calc. */
- @Test
- public void testCorrelate() {
+ @TestTemplate
+ void testCorrelate() {
createTestSource();
util.addTemporarySystemFunction("func1", new TableFunc1());
verifyQuery("SELECT s FROM MyTable, LATERAL TABLE(func1(c)) AS T(s)");
}
/** Verify LookUpJoin. */
- @Test
- public void testLookupJoin() {
+ @TestTemplate
+ void testLookupJoin() {
createSourceWithTimeAttribute();
String srcTableB =
"CREATE TABLE LookupTable (\n"
@@ -99,8 +101,8 @@ public abstract class OperatorNameTestBase extends TableTestBase {
}
/** Verify GroupWindowAggregate. */
- @Test
- public void testGroupWindowAggregate() {
+ @TestTemplate
+ void testGroupWindowAggregate() {
createSourceWithTimeAttribute();
verifyQuery(
"SELECT\n"
@@ -112,8 +114,8 @@ public abstract class OperatorNameTestBase extends TableTestBase {
}
/** Verify OverAggregate. */
- @Test
- public void testOverAggregate() {
+ @TestTemplate
+ void testOverAggregate() {
createSourceWithTimeAttribute();
String sql =
"SELECT b,\n"
@@ -124,8 +126,8 @@ public abstract class OperatorNameTestBase extends TableTestBase {
}
/** Verify Rank. */
- @Test
- public void testRank() {
+ @TestTemplate
+ void testRank() {
createTestSource();
String sql =
"SELECT a, row_num\n"
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/operator/StreamOperatorNameTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/operator/StreamOperatorNameTest.java
index c49e5ab31be..6adc3f69f92 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/operator/StreamOperatorNameTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/operator/StreamOperatorNameTest.java
@@ -32,8 +32,8 @@ import org.apache.flink.table.sinks.TableSink;
import org.apache.flink.table.types.logical.LogicalType;
import org.apache.flink.types.Row;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.TestTemplate;
import java.util.Optional;
@@ -41,7 +41,7 @@ import static org.apache.flink.table.api.Expressions.$;
import static org.apache.flink.table.api.Expressions.call;
/** Tests for verifying name and description of stream sql operator name. */
-public class StreamOperatorNameTest extends OperatorNameTestBase {
+class StreamOperatorNameTest extends OperatorNameTestBase {
private StreamTableTestUtil util;
@@ -50,15 +50,15 @@ public class StreamOperatorNameTest extends OperatorNameTestBase {
return streamTestUtil(TableConfig.getDefault());
}
- @Before
- public void setup() {
+ @BeforeEach
+ void setup() {
super.setup();
util = (StreamTableTestUtil) super.util;
}
/** Verify DropUpdateBefore. */
- @Test
- public void testDropUpdateBefore() throws Exception {
+ @TestTemplate
+ void testDropUpdateBefore() {
util.getStreamEnv().setParallelism(2);
@@ -92,8 +92,8 @@ public class StreamOperatorNameTest extends OperatorNameTestBase {
}
/** Verify ChangelogNormalize and SinkMaterialize. */
- @Test
- public void testChangelogNormalize() throws Exception {
+ @TestTemplate
+ void testChangelogNormalize() throws Exception {
util.getStreamEnv().setParallelism(2);
@@ -127,8 +127,8 @@ public class StreamOperatorNameTest extends OperatorNameTestBase {
}
/** Verify Deduplicate. */
- @Test
- public void testDeduplicate() {
+ @TestTemplate
+ void testDeduplicate() {
createSourceWithTimeAttribute();
verifyQuery(
"SELECT a, b, c FROM "
@@ -142,8 +142,8 @@ public class StreamOperatorNameTest extends OperatorNameTestBase {
* Verify Expand, MiniBatchAssigner, LocalGroupAggregate, GlobalGroupAggregate,
* IncrementalAggregate.
*/
- @Test
- public void testIncrementalAggregate() {
+ @TestTemplate
+ void testIncrementalAggregate() {
util.enableMiniBatch();
tEnv.getConfig()
.set(OptimizerConfigOptions.TABLE_OPTIMIZER_DISTINCT_AGG_SPLIT_ENABLED, true);
@@ -152,14 +152,14 @@ public class StreamOperatorNameTest extends OperatorNameTestBase {
}
/** Verify GroupAggregate. */
- @Test
- public void testGroupAggregate() {
+ @TestTemplate
+ void testGroupAggregate() {
testGroupAggregateInternal();
}
/** Verify RowConversion, TableGroupAggregate. */
- @Test
- public void testTableGroupAggregate() {
+ @TestTemplate
+ void testTableGroupAggregate() {
final DataStream<Integer> dataStream = util.getStreamEnv().fromElements(1, 2, 3, 4, 5);
TableTestUtil.createTemporaryView(
tEnv,
@@ -178,8 +178,8 @@ public class StreamOperatorNameTest extends OperatorNameTestBase {
}
/** Verify IntervalJoin. */
- @Test
- public void testIntervalJoin() {
+ @TestTemplate
+ void testIntervalJoin() {
createSourceWithTimeAttribute("A");
createSourceWithTimeAttribute("B");
verifyQuery(
@@ -189,8 +189,8 @@ public class StreamOperatorNameTest extends OperatorNameTestBase {
}
/** Verify IntervalJoin. */
- @Test
- public void testIntervalJoinNegativeWindow() {
+ @TestTemplate
+ void testIntervalJoinNegativeWindow() {
createSourceWithTimeAttribute("A");
createSourceWithTimeAttribute("B");
verifyQuery(
@@ -200,13 +200,13 @@ public class StreamOperatorNameTest extends OperatorNameTestBase {
}
/** Verify Join. */
- @Test
- public void testJoin() {
+ @TestTemplate
+ void testJoin() {
testJoinInternal();
}
- @Test
- public void testMatch() {
+ @TestTemplate
+ void testMatch() {
createSourceWithTimeAttribute();
String sql =
"SELECT T.aid, T.bid, T.cid\n"
@@ -225,8 +225,8 @@ public class StreamOperatorNameTest extends OperatorNameTestBase {
verifyQuery(sql);
}
- @Test
- public void testTemporalJoin() {
+ @TestTemplate
+ void testTemporalJoin() {
tEnv.executeSql(
"CREATE TABLE Orders (\n"
+ " amount INT,\n"
@@ -257,21 +257,21 @@ public class StreamOperatorNameTest extends OperatorNameTestBase {
+ "WHERE o.currency = r.currency ");
}
- @Test
- public void testTemporalSortOnProcTime() {
+ @TestTemplate
+ void testTemporalSortOnProcTime() {
createSourceWithTimeAttribute();
verifyQuery("SELECT a FROM MyTable order by proctime, c");
}
- @Test
- public void testTemporalSortOnEventTime() {
+ @TestTemplate
+ void testTemporalSortOnEventTime() {
createSourceWithTimeAttribute();
verifyQuery("SELECT a FROM MyTable order by rowtime, c");
}
/** Verify WindowJoin, WindowRank, WindowAggregate, WindowDeduplicate. */
- @Test
- public void testWindowAggregate() {
+ @TestTemplate
+ void testWindowAggregate() {
tEnv.getConfig()
.set(OptimizerConfigOptions.TABLE_OPTIMIZER_AGG_PHASE_STRATEGY, "ONE_PHASE");
createSourceWithTimeAttribute();
@@ -288,8 +288,8 @@ public class StreamOperatorNameTest extends OperatorNameTestBase {
}
/** Verify LocalWindowAggregate, GlobalWindowAggregate. */
- @Test
- public void testLocalGlobalWindowAggregate() {
+ @TestTemplate
+ void testLocalGlobalWindowAggregate() {
createSourceWithTimeAttribute();
verifyQuery(
"SELECT\n"
@@ -304,8 +304,8 @@ public class StreamOperatorNameTest extends OperatorNameTestBase {
}
/** Verify WindowJoin. */
- @Test
- public void testWindowJoin() {
+ @TestTemplate
+ void testWindowJoin() {
createSourceWithTimeAttribute("MyTable");
createSourceWithTimeAttribute("MyTable2");
verifyQuery(
@@ -342,8 +342,8 @@ public class StreamOperatorNameTest extends OperatorNameTestBase {
}
/** Verify WindowTableFunction and WindowRank. */
- @Test
- public void testWindowRank() {
+ @TestTemplate
+ void testWindowRank() {
createSourceWithTimeAttribute();
verifyQuery(
"select\n"
@@ -361,8 +361,8 @@ public class StreamOperatorNameTest extends OperatorNameTestBase {
}
/** Verify WindowDeduplicate. */
- @Test
- public void testWindowDeduplicate() {
+ @TestTemplate
+ void testWindowDeduplicate() {
createSourceWithTimeAttribute();
verifyQuery(
"select\n"
@@ -380,8 +380,8 @@ public class StreamOperatorNameTest extends OperatorNameTestBase {
}
/** Verify LegacySource and LegacySink. */
- @Test
- public void testLegacySourceSink() {
+ @TestTemplate
+ void testLegacySourceSink() {
TableSchema schema = TestLegacyFilterableTableSource.defaultSchema();
TestLegacyFilterableTableSource.createTemporaryTable(
tEnv,
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/processor/MultipleInputNodeCreationProcessorTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/processor/MultipleInputNodeCreationProcessorTest.java
index 213982425ce..31b7ebf7273 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/processor/MultipleInputNodeCreationProcessorTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/processor/MultipleInputNodeCreationProcessorTest.java
@@ -32,9 +32,10 @@ import org.apache.flink.table.planner.utils.BatchTableTestUtil;
import org.apache.flink.table.planner.utils.StreamTableTestUtil;
import org.apache.flink.table.planner.utils.TableTestBase;
import org.apache.flink.table.planner.utils.TableTestUtil;
+import org.apache.flink.testutils.junit.utils.TempDirUtils;
import org.apache.flink.util.FileUtils;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
import java.io.File;
import java.io.IOException;
@@ -42,13 +43,13 @@ import java.io.IOException;
import static org.assertj.core.api.Assertions.assertThat;
/** Tests for {@link MultipleInputNodeCreationProcessor}. */
-public class MultipleInputNodeCreationProcessorTest extends TableTestBase {
+class MultipleInputNodeCreationProcessorTest extends TableTestBase {
private final BatchTableTestUtil batchUtil = batchTestUtil(TableConfig.getDefault());
private final StreamTableTestUtil streamUtil = streamTestUtil(TableConfig.getDefault());
@Test
- public void testIsChainableDataStreamSource() {
+ void testIsChainableDataStreamSource() {
createChainableStream(batchUtil);
assertChainableSource("chainableStream", batchUtil, true);
createChainableStream(streamUtil);
@@ -56,7 +57,7 @@ public class MultipleInputNodeCreationProcessorTest extends TableTestBase {
}
@Test
- public void testNonChainableDataStreamSource() {
+ void testNonChainableDataStreamSource() {
createNonChainableStream(batchUtil);
assertChainableSource("nonChainableStream", batchUtil, false);
createNonChainableStream(streamUtil);
@@ -64,7 +65,7 @@ public class MultipleInputNodeCreationProcessorTest extends TableTestBase {
}
@Test
- public void testIsChainableTableSource() throws IOException {
+ void testIsChainableTableSource() throws IOException {
createTestFileSource(batchUtil.tableEnv(), "fileSource1", "Source");
assertChainableSource("fileSource1", batchUtil, true);
createTestFileSource(streamUtil.tableEnv(), "fileSource1", "Source");
@@ -77,7 +78,7 @@ public class MultipleInputNodeCreationProcessorTest extends TableTestBase {
}
@Test
- public void testNonChainableTableSource() throws IOException {
+ void testNonChainableTableSource() throws IOException {
createTestValueSource(batchUtil.tableEnv(), "valueSource1", "DataStream");
assertChainableSource("valueSource1", batchUtil, false);
createTestValueSource(streamUtil.tableEnv(), "valueSource1", "DataStream");
@@ -135,7 +136,7 @@ public class MultipleInputNodeCreationProcessorTest extends TableTestBase {
private void createTestFileSource(TableEnvironment tEnv, String name, String runtimeSource)
throws IOException {
- File file = tempFolder().newFile();
+ File file = TempDirUtils.newFile(tempFolder());
file.delete();
file.createNewFile();
FileUtils.writeFileUtf8(file, "1\n2\n3\n");
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/CalcJsonPlanTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/CalcJsonPlanTest.java
index 0eea911954f..7509fc282b3 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/CalcJsonPlanTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/CalcJsonPlanTest.java
@@ -28,17 +28,17 @@ import org.apache.flink.table.planner.runtime.utils.JavaUserDefinedScalarFunctio
import org.apache.flink.table.planner.utils.StreamTableTestUtil;
import org.apache.flink.table.planner.utils.TableTestBase;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
/** Test json serialization/deserialization for calc. */
-public class CalcJsonPlanTest extends TableTestBase {
+class CalcJsonPlanTest extends TableTestBase {
private StreamTableTestUtil util;
private TableEnvironment tEnv;
- @Before
- public void setup() {
+ @BeforeEach
+ void setup() {
util = streamTestUtil(TableConfig.getDefault());
tEnv = util.getTableEnv();
@@ -55,7 +55,7 @@ public class CalcJsonPlanTest extends TableTestBase {
}
@Test
- public void testSimpleProject() {
+ void testSimpleProject() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " a bigint,\n"
@@ -68,7 +68,7 @@ public class CalcJsonPlanTest extends TableTestBase {
}
@Test
- public void testSimpleFilter() {
+ void testSimpleFilter() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " a bigint,\n"
@@ -83,7 +83,7 @@ public class CalcJsonPlanTest extends TableTestBase {
}
@Test
- public void testComplexCalc() {
+ void testComplexCalc() {
tEnv.createTemporaryFunction("udf1", new JavaFunc0());
tEnv.createTemporaryFunction("udf2", JavaFunc1.class);
tEnv.createTemporarySystemFunction("udf3", new JavaFunc2());
@@ -116,7 +116,7 @@ public class CalcJsonPlanTest extends TableTestBase {
}
@Test
- public void testSarg() {
+ void testSarg() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " a bigint\n"
@@ -130,7 +130,7 @@ public class CalcJsonPlanTest extends TableTestBase {
}
@Test
- public void testProjectPushDown() {
+ void testProjectPushDown() {
// ensure PartitionPushDownSpec was added to exec plan
String sinkTableDdl =
"CREATE TABLE MySink (\n"
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/ChangelogSourceJsonPlanTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/ChangelogSourceJsonPlanTest.java
index 1ec1567d134..0e35bc11bca 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/ChangelogSourceJsonPlanTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/ChangelogSourceJsonPlanTest.java
@@ -24,24 +24,24 @@ import org.apache.flink.table.api.config.ExecutionConfigOptions;
import org.apache.flink.table.planner.utils.StreamTableTestUtil;
import org.apache.flink.table.planner.utils.TableTestBase;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
/** Test json serialization/deserialization for changelog source, including upsert source. */
-public class ChangelogSourceJsonPlanTest extends TableTestBase {
+class ChangelogSourceJsonPlanTest extends TableTestBase {
private StreamTableTestUtil util;
private TableEnvironment tEnv;
- @Before
- public void setup() {
+ @BeforeEach
+ void setup() {
util = streamTestUtil(TableConfig.getDefault());
tEnv = util.getTableEnv();
tEnv.getConfig().set(ExecutionConfigOptions.TABLE_EXEC_SOURCE_CDC_EVENTS_DUPLICATE, true);
}
@Test
- public void testChangelogSource() {
+ void testChangelogSource() {
String srcTableDdl =
"CREATE TABLE MyTable (\n"
+ " a bigint,\n"
@@ -68,7 +68,7 @@ public class ChangelogSourceJsonPlanTest extends TableTestBase {
}
@Test
- public void testUpsertSource() {
+ void testUpsertSource() {
String srcTableDdl =
"CREATE TABLE MyTable (\n"
+ " a bigint,\n"
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/CorrelateJsonPlanTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/CorrelateJsonPlanTest.java
index 8d1ebe80727..d7672a03e03 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/CorrelateJsonPlanTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/CorrelateJsonPlanTest.java
@@ -24,17 +24,17 @@ import org.apache.flink.table.planner.utils.StreamTableTestUtil;
import org.apache.flink.table.planner.utils.TableFunc1;
import org.apache.flink.table.planner.utils.TableTestBase;
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
/** Test json serialization/deserialization for correlate. */
-public class CorrelateJsonPlanTest extends TableTestBase {
+class CorrelateJsonPlanTest extends TableTestBase {
private StreamTableTestUtil util;
private TableEnvironment tEnv;
- @Before
- public void setup() {
+ @BeforeEach
+ void setup() {
util = streamTestUtil(TableConfig.getDefault());
tEnv = util.getTableEnv();
@@ -51,7 +51,7 @@ public class CorrelateJsonPlanTest extends TableTestBase {
}
@Test
- public void testCrossJoin() {
+ void testCrossJoin() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " a varchar,\n"
@@ -68,8 +68,8 @@ public class CorrelateJsonPlanTest extends TableTestBase {
}
@Test
- @Ignore("the case is ignored because of FLINK-21870")
- public void testRegisterByClass() {
+ @Disabled("the case is ignored because of FLINK-21870")
+ void testRegisterByClass() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " a varchar,\n"
@@ -86,7 +86,7 @@ public class CorrelateJsonPlanTest extends TableTestBase {
}
@Test
- public void testCrossJoinOverrideParameters() {
+ void testCrossJoinOverrideParameters() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " a varchar,\n"
@@ -103,7 +103,7 @@ public class CorrelateJsonPlanTest extends TableTestBase {
}
@Test
- public void testLeftOuterJoinWithLiteralTrue() {
+ void testLeftOuterJoinWithLiteralTrue() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " a varchar,\n"
@@ -120,7 +120,7 @@ public class CorrelateJsonPlanTest extends TableTestBase {
}
@Test
- public void testJoinWithFilter() {
+ void testJoinWithFilter() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " a varchar,\n"
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/DeduplicationJsonPlanTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/DeduplicationJsonPlanTest.java
index 10543540f58..cccd49cffc0 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/DeduplicationJsonPlanTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/DeduplicationJsonPlanTest.java
@@ -23,23 +23,23 @@ import org.apache.flink.table.api.TableEnvironment;
import org.apache.flink.table.planner.utils.StreamTableTestUtil;
import org.apache.flink.table.planner.utils.TableTestBase;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
/** Test json serialization/deserialization for deduplicate. */
-public class DeduplicationJsonPlanTest extends TableTestBase {
+class DeduplicationJsonPlanTest extends TableTestBase {
private StreamTableTestUtil util;
private TableEnvironment tEnv;
- @Before
- public void setup() {
+ @BeforeEach
+ void setup() {
util = streamTestUtil(TableConfig.getDefault());
tEnv = util.getTableEnv();
}
@Test
- public void testDeduplication() {
+ void testDeduplication() {
String srcTableDdl =
"CREATE TABLE srcValuesTable (\n"
+ " order_id bigint,\n"
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/ExpandJsonPlanTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/ExpandJsonPlanTest.java
index b55cf03fb9f..9d568e6417e 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/ExpandJsonPlanTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/ExpandJsonPlanTest.java
@@ -26,17 +26,17 @@ import org.apache.flink.table.planner.utils.AggregatePhaseStrategy;
import org.apache.flink.table.planner.utils.StreamTableTestUtil;
import org.apache.flink.table.planner.utils.TableTestBase;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
/** Test json serialization/deserialization for expand. */
-public class ExpandJsonPlanTest extends TableTestBase {
+class ExpandJsonPlanTest extends TableTestBase {
private StreamTableTestUtil util;
private TableEnvironment tEnv;
- @Before
- public void setup() {
+ @BeforeEach
+ void setup() {
util = streamTestUtil(TableConfig.getDefault());
tEnv = util.getTableEnv();
tEnv.getConfig()
@@ -58,7 +58,7 @@ public class ExpandJsonPlanTest extends TableTestBase {
}
@Test
- public void testExpand() {
+ void testExpand() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " a bigint,\n"
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/GroupAggregateJsonPlanTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/GroupAggregateJsonPlanTest.java
index 27b72964888..e655a3527ea 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/GroupAggregateJsonPlanTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/GroupAggregateJsonPlanTest.java
@@ -27,32 +27,34 @@ import org.apache.flink.table.planner.plan.utils.JavaUserDefinedAggFunctions.Var
import org.apache.flink.table.planner.plan.utils.JavaUserDefinedAggFunctions.WeightedAvg;
import org.apache.flink.table.planner.utils.StreamTableTestUtil;
import org.apache.flink.table.planner.utils.TableTestBase;
+import org.apache.flink.testutils.junit.extensions.parameterized.Parameter;
+import org.apache.flink.testutils.junit.extensions.parameterized.ParameterizedTestExtension;
+import org.apache.flink.testutils.junit.extensions.parameterized.Parameters;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.TestTemplate;
+import org.junit.jupiter.api.extension.ExtendWith;
import java.time.Duration;
import java.util.Arrays;
import java.util.List;
/** Test json serialization/deserialization for group aggregate. */
-@RunWith(Parameterized.class)
-public class GroupAggregateJsonPlanTest extends TableTestBase {
+@ExtendWith(ParameterizedTestExtension.class)
+class GroupAggregateJsonPlanTest extends TableTestBase {
- @Parameterized.Parameter public boolean isMiniBatchEnabled;
+ @Parameter private boolean isMiniBatchEnabled;
private StreamTableTestUtil util;
private TableEnvironment tEnv;
- @Parameterized.Parameters(name = "isMiniBatchEnabled={0}")
- public static List<Boolean> testData() {
+ @Parameters(name = "isMiniBatchEnabled={0}")
+ private static List<Boolean> testData() {
return Arrays.asList(true, false);
}
- @Before
- public void setup() {
+ @BeforeEach
+ void setup() {
util = streamTestUtil(TableConfig.getDefault());
tEnv = util.getTableEnv();
if (isMiniBatchEnabled) {
@@ -78,8 +80,8 @@ public class GroupAggregateJsonPlanTest extends TableTestBase {
tEnv.executeSql(srcTableDdl);
}
- @Test
- public void testSimpleAggCallsWithGroupBy() {
+ @TestTemplate
+ void testSimpleAggCallsWithGroupBy() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " b bigint,\n"
@@ -99,8 +101,8 @@ public class GroupAggregateJsonPlanTest extends TableTestBase {
+ "from MyTable group by b");
}
- @Test
- public void testSimpleAggWithoutGroupBy() {
+ @TestTemplate
+ void testSimpleAggWithoutGroupBy() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " avg_a double,\n"
@@ -123,8 +125,8 @@ public class GroupAggregateJsonPlanTest extends TableTestBase {
+ "from MyTable");
}
- @Test
- public void testDistinctAggCalls() {
+ @TestTemplate
+ void testDistinctAggCalls() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " d bigint,\n"
@@ -150,8 +152,8 @@ public class GroupAggregateJsonPlanTest extends TableTestBase {
+ "from MyTable group by d");
}
- @Test
- public void testUserDefinedAggCalls() {
+ @TestTemplate
+ void testUserDefinedAggCalls() {
tEnv.createTemporaryFunction("my_sum1", new VarSum1AggFunction());
tEnv.createFunction("my_avg", WeightedAvg.class);
tEnv.createTemporarySystemFunction("my_sum2", VarSum2AggFunction.class);
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/GroupWindowAggregateJsonPlanTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/GroupWindowAggregateJsonPlanTest.java
index 12313ff234e..d7341829a73 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/GroupWindowAggregateJsonPlanTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/GroupWindowAggregateJsonPlanTest.java
@@ -24,16 +24,16 @@ import org.apache.flink.table.planner.plan.utils.JavaUserDefinedAggFunctions;
import org.apache.flink.table.planner.utils.StreamTableTestUtil;
import org.apache.flink.table.planner.utils.TableTestBase;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
/** Test json serialization/deserialization for group window aggregate. */
-public class GroupWindowAggregateJsonPlanTest extends TableTestBase {
+class GroupWindowAggregateJsonPlanTest extends TableTestBase {
private StreamTableTestUtil util;
private TableEnvironment tEnv;
- @Before
- public void setup() {
+ @BeforeEach
+ void setup() {
util = streamTestUtil(TableConfig.getDefault());
tEnv = util.getTableEnv();
@@ -51,7 +51,7 @@ public class GroupWindowAggregateJsonPlanTest extends TableTestBase {
}
@Test
- public void testEventTimeTumbleWindow() {
+ void testEventTimeTumbleWindow() {
tEnv.createFunction(
"concat_distinct_agg", JavaUserDefinedAggFunctions.ConcatDistinctAggFunction.class);
String sinkTableDdl =
@@ -80,7 +80,7 @@ public class GroupWindowAggregateJsonPlanTest extends TableTestBase {
}
@Test
- public void testProcTimeTumbleWindow() {
+ void testProcTimeTumbleWindow() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " b BIGINT,\n"
@@ -99,7 +99,7 @@ public class GroupWindowAggregateJsonPlanTest extends TableTestBase {
}
@Test
- public void testEventTimeHopWindow() {
+ void testEventTimeHopWindow() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " b BIGINT,\n"
@@ -118,7 +118,7 @@ public class GroupWindowAggregateJsonPlanTest extends TableTestBase {
}
@Test
- public void testProcTimeHopWindow() {
+ void testProcTimeHopWindow() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " b BIGINT,\n"
@@ -135,7 +135,7 @@ public class GroupWindowAggregateJsonPlanTest extends TableTestBase {
}
@Test
- public void testEventTimeSessionWindow() {
+ void testEventTimeSessionWindow() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " b BIGINT,\n"
@@ -154,7 +154,7 @@ public class GroupWindowAggregateJsonPlanTest extends TableTestBase {
}
@Test
- public void testProcTimeSessionWindow() {
+ void testProcTimeSessionWindow() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " b BIGINT,\n"
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/IncrementalAggregateJsonPlanTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/IncrementalAggregateJsonPlanTest.java
index cc210a6dff4..26dcc04f303 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/IncrementalAggregateJsonPlanTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/IncrementalAggregateJsonPlanTest.java
@@ -27,19 +27,19 @@ import org.apache.flink.table.planner.utils.AggregatePhaseStrategy;
import org.apache.flink.table.planner.utils.StreamTableTestUtil;
import org.apache.flink.table.planner.utils.TableTestBase;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
import java.time.Duration;
/** Test json serialization/deserialization for incremental aggregate. */
-public class IncrementalAggregateJsonPlanTest extends TableTestBase {
+class IncrementalAggregateJsonPlanTest extends TableTestBase {
private StreamTableTestUtil util;
private TableEnvironment tEnv;
- @Before
- public void setup() {
+ @BeforeEach
+ void setup() {
util = streamTestUtil(TableConfig.getDefault());
tEnv = util.getTableEnv();
tEnv.getConfig()
@@ -67,7 +67,7 @@ public class IncrementalAggregateJsonPlanTest extends TableTestBase {
}
@Test
- public void testIncrementalAggregate() {
+ void testIncrementalAggregate() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " a bigint,\n"
@@ -84,7 +84,7 @@ public class IncrementalAggregateJsonPlanTest extends TableTestBase {
}
@Test
- public void testIncrementalAggregateWithSumCountDistinctAndRetraction() {
+ void testIncrementalAggregateWithSumCountDistinctAndRetraction() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " b bigint,\n"
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/IntervalJoinJsonPlanTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/IntervalJoinJsonPlanTest.java
index d5325f133fa..71a6f52ea0b 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/IntervalJoinJsonPlanTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/IntervalJoinJsonPlanTest.java
@@ -23,17 +23,17 @@ import org.apache.flink.table.api.TableEnvironment;
import org.apache.flink.table.planner.utils.StreamTableTestUtil;
import org.apache.flink.table.planner.utils.TableTestBase;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
/** Test json serialization/deserialization for IntervalJoin. */
-public class IntervalJoinJsonPlanTest extends TableTestBase {
+class IntervalJoinJsonPlanTest extends TableTestBase {
private StreamTableTestUtil util;
private TableEnvironment tEnv;
- @Before
- public void setup() {
+ @BeforeEach
+ void setup() {
util = streamTestUtil(TableConfig.getDefault());
tEnv = util.getTableEnv();
@@ -64,7 +64,7 @@ public class IntervalJoinJsonPlanTest extends TableTestBase {
}
@Test
- public void testProcessingTimeInnerJoinWithOnClause() {
+ void testProcessingTimeInnerJoinWithOnClause() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " a int,\n"
@@ -81,7 +81,7 @@ public class IntervalJoinJsonPlanTest extends TableTestBase {
}
@Test
- public void testRowTimeInnerJoinWithOnClause() {
+ void testRowTimeInnerJoinWithOnClause() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " a int,\n"
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/JoinJsonPlanTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/JoinJsonPlanTest.java
index c0154949333..dd2771ea7cf 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/JoinJsonPlanTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/JoinJsonPlanTest.java
@@ -23,17 +23,17 @@ import org.apache.flink.table.api.TableEnvironment;
import org.apache.flink.table.planner.utils.StreamTableTestUtil;
import org.apache.flink.table.planner.utils.TableTestBase;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
/** Test json serialization/deserialization for join. */
-public class JoinJsonPlanTest extends TableTestBase {
+class JoinJsonPlanTest extends TableTestBase {
private StreamTableTestUtil util;
private TableEnvironment tEnv;
- @Before
- public void setup() {
+ @BeforeEach
+ void setup() {
util = streamTestUtil(TableConfig.getDefault());
tEnv = util.getTableEnv();
@@ -76,7 +76,7 @@ public class JoinJsonPlanTest extends TableTestBase {
}
@Test
- public void testInnerJoin() {
+ void testInnerJoin() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " a1 int,\n"
@@ -89,7 +89,7 @@ public class JoinJsonPlanTest extends TableTestBase {
}
@Test
- public void testInnerJoinWithEqualPk() {
+ void testInnerJoinWithEqualPk() {
String query1 = "SELECT SUM(a2) AS a2, a1 FROM A GROUP BY a1";
String query2 = "SELECT SUM(b2) AS b2, b1 FROM B GROUP BY b1";
String query =
@@ -107,7 +107,7 @@ public class JoinJsonPlanTest extends TableTestBase {
}
@Test
- public void testInnerJoinWithPk() {
+ void testInnerJoinWithPk() {
String query1 = "SELECT SUM(a2) AS a2, a1 FROM A GROUP BY a1";
String query2 = "SELECT SUM(b2) AS b2, b1 FROM B GROUP BY b1";
String query =
@@ -128,7 +128,7 @@ public class JoinJsonPlanTest extends TableTestBase {
}
@Test
- public void testLeftJoinNonEqui() {
+ void testLeftJoinNonEqui() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " a1 int,\n"
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/LookupJoinJsonPlanTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/LookupJoinJsonPlanTest.java
index 1cdfca1c3db..6aa3a3a75c7 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/LookupJoinJsonPlanTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/LookupJoinJsonPlanTest.java
@@ -29,8 +29,8 @@ import org.apache.flink.table.planner.utils.StreamTableTestUtil;
import org.apache.flink.table.planner.utils.TableTestBase;
import org.apache.flink.types.Row;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
import java.util.ArrayList;
@@ -40,13 +40,13 @@ import static org.apache.flink.core.testutils.FlinkAssertions.anyCauseMatches;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
/** Test json serialization/deserialization for LookupJoin. */
-public class LookupJoinJsonPlanTest extends TableTestBase {
+class LookupJoinJsonPlanTest extends TableTestBase {
private StreamTableTestUtil util;
private TableEnvironment tEnv;
- @Before
- public void setup() {
+ @BeforeEach
+ void setup() {
util = streamTestUtil(TableConfig.getDefault());
tEnv = util.getTableEnv();
@@ -97,7 +97,7 @@ public class LookupJoinJsonPlanTest extends TableTestBase {
}
@Test
- public void testJoinTemporalTable() {
+ void testJoinTemporalTable() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " a int,\n"
@@ -118,7 +118,7 @@ public class LookupJoinJsonPlanTest extends TableTestBase {
}
@Test
- public void testJoinTemporalTableWithProjectionPushDown() {
+ void testJoinTemporalTableWithProjectionPushDown() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " a int,\n"
@@ -140,7 +140,7 @@ public class LookupJoinJsonPlanTest extends TableTestBase {
}
@Test
- public void testLegacyTableSourceException() {
+ void testLegacyTableSourceException() {
TableSchema tableSchema =
TableSchema.builder()
.field("id", Types.INT)
@@ -182,7 +182,7 @@ public class LookupJoinJsonPlanTest extends TableTestBase {
}
@Test
- public void testAggAndLeftJoinWithTryResolveMode() {
+ void testAggAndLeftJoinWithTryResolveMode() {
tEnv.getConfig()
.set(
OptimizerConfigOptions.TABLE_OPTIMIZER_NONDETERMINISTIC_UPDATE_STRATEGY,
@@ -197,7 +197,7 @@ public class LookupJoinJsonPlanTest extends TableTestBase {
}
@Test
- public void testJoinTemporalTableWithAsyncHint() {
+ void testJoinTemporalTableWithAsyncHint() {
// LookupTable has sync func only, just verify the hint has take effect
util.verifyJsonPlan(
"INSERT INTO MySink1 SELECT "
@@ -207,7 +207,7 @@ public class LookupJoinJsonPlanTest extends TableTestBase {
}
@Test
- public void testJoinTemporalTableWithAsyncHint2() {
+ void testJoinTemporalTableWithAsyncHint2() {
// LookupTable has sync func only, just verify the hint has take effect
util.verifyJsonPlan(
"INSERT INTO MySink1 SELECT "
@@ -217,7 +217,7 @@ public class LookupJoinJsonPlanTest extends TableTestBase {
}
@Test
- public void testJoinTemporalTableWithRetryHint() {
+ void testJoinTemporalTableWithRetryHint() {
util.verifyJsonPlan(
"INSERT INTO MySink1 SELECT "
+ "/*+ LOOKUP('table'='D', 'retry-predicate'='lookup_miss', 'retry-strategy'='fixed_delay', 'fixed-delay'='10s', 'max-attempts'='3') */ * "
@@ -226,7 +226,7 @@ public class LookupJoinJsonPlanTest extends TableTestBase {
}
@Test
- public void testJoinTemporalTableWithAsyncRetryHint() {
+ void testJoinTemporalTableWithAsyncRetryHint() {
// LookupTable has sync func only, just verify the hint has take effect
util.verifyJsonPlan(
"INSERT INTO MySink1 SELECT "
@@ -236,7 +236,7 @@ public class LookupJoinJsonPlanTest extends TableTestBase {
}
@Test
- public void testJoinTemporalTableWithAsyncRetryHint2() {
+ void testJoinTemporalTableWithAsyncRetryHint2() {
// LookupTable has sync func only, just verify the hint has take effect
util.verifyJsonPlan(
"INSERT INTO MySink1 SELECT "
@@ -246,7 +246,7 @@ public class LookupJoinJsonPlanTest extends TableTestBase {
}
@Test
- public void testLeftJoinTemporalTableWithPreFilter() {
+ void testLeftJoinTemporalTableWithPreFilter() {
util.verifyJsonPlan(
"INSERT INTO MySink1 SELECT * "
+ "FROM MyTable AS T LEFT JOIN LookupTable "
@@ -254,7 +254,7 @@ public class LookupJoinJsonPlanTest extends TableTestBase {
}
@Test
- public void testLeftJoinTemporalTableWithPostFilter() {
+ void testLeftJoinTemporalTableWithPostFilter() {
util.verifyJsonPlan(
"INSERT INTO MySink1 SELECT * "
+ "FROM MyTable AS T LEFT JOIN LookupTable "
@@ -263,7 +263,7 @@ public class LookupJoinJsonPlanTest extends TableTestBase {
}
@Test
- public void testLeftJoinTemporalTableWithMultiJoinConditions() {
+ void testLeftJoinTemporalTableWithMultiJoinConditions() {
util.verifyJsonPlan(
"INSERT INTO MySink1 SELECT * "
+ "FROM MyTable AS T LEFT JOIN LookupTable "
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/MatchRecognizeJsonPlanTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/MatchRecognizeJsonPlanTest.java
index e0ef65b447b..c31f300ca4e 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/MatchRecognizeJsonPlanTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/MatchRecognizeJsonPlanTest.java
@@ -23,22 +23,22 @@ import org.apache.flink.table.api.TableEnvironment;
import org.apache.flink.table.planner.utils.StreamTableTestUtil;
import org.apache.flink.table.planner.utils.TableTestBase;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
/** Test json serialization for match recognize. */
-public class MatchRecognizeJsonPlanTest extends TableTestBase {
+class MatchRecognizeJsonPlanTest extends TableTestBase {
private StreamTableTestUtil util;
private TableEnvironment tEnv;
- @Before
- public void setup() {
+ @BeforeEach
+ void setup() {
util = streamTestUtil(TableConfig.getDefault());
tEnv = util.getTableEnv();
}
@Test
- public void testMatch() {
+ void testMatch() {
String srcTableDdl =
"CREATE TABLE MyTable (\n"
+ " id bigint,\n"
@@ -78,22 +78,22 @@ public class MatchRecognizeJsonPlanTest extends TableTestBase {
}
@Test
- public void testSkipToLast() {
+ void testSkipToLast() {
doTestAfterMatch("AFTER MATCH SKIP TO LAST B");
}
@Test
- public void testSkipToFirst() {
+ void testSkipToFirst() {
doTestAfterMatch("AFTER MATCH SKIP TO FIRST B");
}
@Test
- public void testSkipPastLastRow() {
+ void testSkipPastLastRow() {
doTestAfterMatch("AFTER MATCH SKIP PAST LAST ROW");
}
@Test
- public void testSkipToNextRow() {
+ void testSkipToNextRow() {
doTestAfterMatch("AFTER MATCH SKIP TO NEXT ROW");
}
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/OverAggregateJsonPlanTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/OverAggregateJsonPlanTest.java
index 6607dca9a34..c01fa412176 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/OverAggregateJsonPlanTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/OverAggregateJsonPlanTest.java
@@ -23,16 +23,16 @@ import org.apache.flink.table.api.TableEnvironment;
import org.apache.flink.table.planner.utils.StreamTableTestUtil;
import org.apache.flink.table.planner.utils.TableTestBase;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
/** Test json serialization for over aggregate. */
-public class OverAggregateJsonPlanTest extends TableTestBase {
+class OverAggregateJsonPlanTest extends TableTestBase {
private StreamTableTestUtil util;
private TableEnvironment tEnv;
- @Before
- public void setup() {
+ @BeforeEach
+ void setup() {
util = streamTestUtil(TableConfig.getDefault());
tEnv = util.getTableEnv();
String srcTableDdl =
@@ -50,7 +50,7 @@ public class OverAggregateJsonPlanTest extends TableTestBase {
}
@Test
- public void testProctimeBoundedDistinctWithNonDistinctPartitionedRowOver() {
+ void testProctimeBoundedDistinctWithNonDistinctPartitionedRowOver() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " a varchar,\n"
@@ -78,7 +78,7 @@ public class OverAggregateJsonPlanTest extends TableTestBase {
}
@Test
- public void testProctimeBoundedDistinctPartitionedRowOver() {
+ void testProctimeBoundedDistinctPartitionedRowOver() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " a bigint,\n"
@@ -100,7 +100,7 @@ public class OverAggregateJsonPlanTest extends TableTestBase {
}
@Test
- public void testProcTimeBoundedPartitionedRangeOver() {
+ void testProcTimeBoundedPartitionedRangeOver() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " a bigint,\n"
@@ -119,7 +119,7 @@ public class OverAggregateJsonPlanTest extends TableTestBase {
}
@Test
- public void testProcTimeBoundedNonPartitionedRangeOver() {
+ void testProcTimeBoundedNonPartitionedRangeOver() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " a bigint,\n"
@@ -138,7 +138,7 @@ public class OverAggregateJsonPlanTest extends TableTestBase {
}
@Test
- public void testProcTimeUnboundedPartitionedRangeOver() {
+ void testProcTimeUnboundedPartitionedRangeOver() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " a bigint,\n"
@@ -158,7 +158,7 @@ public class OverAggregateJsonPlanTest extends TableTestBase {
}
@Test
- public void testRowTimeBoundedPartitionedRowsOver() {
+ void testRowTimeBoundedPartitionedRowsOver() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " a bigint,\n"
@@ -177,7 +177,7 @@ public class OverAggregateJsonPlanTest extends TableTestBase {
}
@Test
- public void testProcTimeBoundedPartitionedRowsOverWithBuiltinProctime() {
+ void testProcTimeBoundedPartitionedRowsOverWithBuiltinProctime() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " a bigint,\n"
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonCalcJsonPlanTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonCalcJsonPlanTest.java
index 07a367d6d24..dbe3c840cb0 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonCalcJsonPlanTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonCalcJsonPlanTest.java
@@ -25,17 +25,17 @@ import org.apache.flink.table.planner.runtime.utils.JavaUserDefinedScalarFunctio
import org.apache.flink.table.planner.utils.StreamTableTestUtil;
import org.apache.flink.table.planner.utils.TableTestBase;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
/** Test json serialization/deserialization for calc. */
-public class PythonCalcJsonPlanTest extends TableTestBase {
+class PythonCalcJsonPlanTest extends TableTestBase {
private StreamTableTestUtil util;
private TableEnvironment tEnv;
- @Before
- public void setup() {
+ @BeforeEach
+ void setup() {
util = streamTestUtil(TableConfig.getDefault());
tEnv = util.getTableEnv();
@@ -52,7 +52,7 @@ public class PythonCalcJsonPlanTest extends TableTestBase {
}
@Test
- public void testPythonCalc() {
+ void testPythonCalc() {
tEnv.createTemporaryFunction("pyFunc", new PythonScalarFunction("pyFunc"));
String sinkTableDdl =
"CREATE TABLE MySink (\n"
@@ -66,7 +66,7 @@ public class PythonCalcJsonPlanTest extends TableTestBase {
}
@Test
- public void testPythonFunctionInWhereClause() {
+ void testPythonFunctionInWhereClause() {
tEnv.createTemporaryFunction("pyFunc", new BooleanPythonScalarFunction("pyFunc"));
String sinkTableDdl =
"CREATE TABLE MySink (\n"
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonCorrelateJsonPlanTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonCorrelateJsonPlanTest.java
index 456df0dd0ed..c2bc2009b46 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonCorrelateJsonPlanTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonCorrelateJsonPlanTest.java
@@ -25,16 +25,16 @@ import org.apache.flink.table.planner.utils.MockPythonTableFunction;
import org.apache.flink.table.planner.utils.StreamTableTestUtil;
import org.apache.flink.table.planner.utils.TableTestBase;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
/** Test json serialization/deserialization for correlate. */
-public class PythonCorrelateJsonPlanTest extends TableTestBase {
+class PythonCorrelateJsonPlanTest extends TableTestBase {
private StreamTableTestUtil util;
private TableEnvironment tEnv;
- @Before
- public void setup() {
+ @BeforeEach
+ void setup() {
TableConfig tableConfig = TableConfig.getDefault();
util = streamTestUtil(tableConfig);
tEnv = util.getTableEnv();
@@ -54,7 +54,7 @@ public class PythonCorrelateJsonPlanTest extends TableTestBase {
}
@Test
- public void testPythonTableFunction() {
+ void testPythonTableFunction() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " a int,\n"
@@ -71,7 +71,7 @@ public class PythonCorrelateJsonPlanTest extends TableTestBase {
}
@Test
- public void testJoinWithFilter() {
+ void testJoinWithFilter() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " a int,\n"
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonGroupAggregateJsonPlanTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonGroupAggregateJsonPlanTest.java
index 5b50a2597cb..8f2e72d4916 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonGroupAggregateJsonPlanTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonGroupAggregateJsonPlanTest.java
@@ -24,17 +24,17 @@ import org.apache.flink.table.planner.runtime.utils.JavaUserDefinedAggFunctions.
import org.apache.flink.table.planner.utils.StreamTableTestUtil;
import org.apache.flink.table.planner.utils.TableTestBase;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
/** Test json serialization/deserialization for group aggregate. */
-public class PythonGroupAggregateJsonPlanTest extends TableTestBase {
+class PythonGroupAggregateJsonPlanTest extends TableTestBase {
private StreamTableTestUtil util;
private TableEnvironment tEnv;
- @Before
- public void setup() {
+ @BeforeEach
+ void setup() {
util = streamTestUtil(TableConfig.getDefault());
tEnv = util.getTableEnv();
@@ -52,7 +52,7 @@ public class PythonGroupAggregateJsonPlanTest extends TableTestBase {
}
@Test
- public void tesPythonAggCallsWithGroupBy() {
+ void tesPythonAggCallsWithGroupBy() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " a bigint,\n"
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonGroupWindowAggregateJsonPlanTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonGroupWindowAggregateJsonPlanTest.java
index afcd4a86fe1..0b1058b1529 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonGroupWindowAggregateJsonPlanTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonGroupWindowAggregateJsonPlanTest.java
@@ -24,16 +24,16 @@ import org.apache.flink.table.planner.runtime.utils.JavaUserDefinedAggFunctions.
import org.apache.flink.table.planner.utils.StreamTableTestUtil;
import org.apache.flink.table.planner.utils.TableTestBase;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
/** Test json serialization/deserialization for group window aggregate. */
-public class PythonGroupWindowAggregateJsonPlanTest extends TableTestBase {
+class PythonGroupWindowAggregateJsonPlanTest extends TableTestBase {
private StreamTableTestUtil util;
private TableEnvironment tEnv;
- @Before
- public void setup() {
+ @BeforeEach
+ void setup() {
util = streamTestUtil(TableConfig.getDefault());
tEnv = util.getTableEnv();
@@ -52,7 +52,7 @@ public class PythonGroupWindowAggregateJsonPlanTest extends TableTestBase {
}
@Test
- public void testEventTimeTumbleWindow() {
+ void testEventTimeTumbleWindow() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " b BIGINT,\n"
@@ -73,7 +73,7 @@ public class PythonGroupWindowAggregateJsonPlanTest extends TableTestBase {
}
@Test
- public void testProcTimeTumbleWindow() {
+ void testProcTimeTumbleWindow() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " b BIGINT,\n"
@@ -92,7 +92,7 @@ public class PythonGroupWindowAggregateJsonPlanTest extends TableTestBase {
}
@Test
- public void testEventTimeHopWindow() {
+ void testEventTimeHopWindow() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " b BIGINT,\n"
@@ -109,7 +109,7 @@ public class PythonGroupWindowAggregateJsonPlanTest extends TableTestBase {
}
@Test
- public void testProcTimeHopWindow() {
+ void testProcTimeHopWindow() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " b BIGINT,\n"
@@ -126,7 +126,7 @@ public class PythonGroupWindowAggregateJsonPlanTest extends TableTestBase {
}
@Test
- public void testEventTimeSessionWindow() {
+ void testEventTimeSessionWindow() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " b BIGINT,\n"
@@ -143,7 +143,7 @@ public class PythonGroupWindowAggregateJsonPlanTest extends TableTestBase {
}
@Test
- public void testProcTimeSessionWindow() {
+ void testProcTimeSessionWindow() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " b BIGINT,\n"
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonOverAggregateJsonPlanTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonOverAggregateJsonPlanTest.java
index ec5f4e3f967..cf91be90074 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonOverAggregateJsonPlanTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/PythonOverAggregateJsonPlanTest.java
@@ -24,16 +24,16 @@ import org.apache.flink.table.planner.runtime.utils.JavaUserDefinedAggFunctions.
import org.apache.flink.table.planner.utils.StreamTableTestUtil;
import org.apache.flink.table.planner.utils.TableTestBase;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
/** Test json serialization for over aggregate. */
-public class PythonOverAggregateJsonPlanTest extends TableTestBase {
+class PythonOverAggregateJsonPlanTest extends TableTestBase {
private StreamTableTestUtil util;
private TableEnvironment tEnv;
- @Before
- public void setup() {
+ @BeforeEach
+ void setup() {
util = streamTestUtil(TableConfig.getDefault());
tEnv = util.getTableEnv();
String srcTableDdl =
@@ -52,7 +52,7 @@ public class PythonOverAggregateJsonPlanTest extends TableTestBase {
}
@Test
- public void testProcTimeBoundedPartitionedRangeOver() {
+ void testProcTimeBoundedPartitionedRangeOver() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " a bigint,\n"
@@ -71,7 +71,7 @@ public class PythonOverAggregateJsonPlanTest extends TableTestBase {
}
@Test
- public void testProcTimeBoundedNonPartitionedRangeOver() {
+ void testProcTimeBoundedNonPartitionedRangeOver() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " a bigint,\n"
@@ -90,7 +90,7 @@ public class PythonOverAggregateJsonPlanTest extends TableTestBase {
}
@Test
- public void testProcTimeUnboundedPartitionedRangeOver() {
+ void testProcTimeUnboundedPartitionedRangeOver() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " a bigint,\n"
@@ -108,7 +108,7 @@ public class PythonOverAggregateJsonPlanTest extends TableTestBase {
}
@Test
- public void testRowTimeBoundedPartitionedRowsOver() {
+ void testRowTimeBoundedPartitionedRowsOver() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " a bigint,\n"
@@ -127,7 +127,7 @@ public class PythonOverAggregateJsonPlanTest extends TableTestBase {
}
@Test
- public void testProcTimeBoundedPartitionedRowsOverWithBuiltinProctime() {
+ void testProcTimeBoundedPartitionedRowsOverWithBuiltinProctime() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " a bigint,\n"
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/RankJsonPlanTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/RankJsonPlanTest.java
index ab3e1411b7d..ba4bdd7c6f1 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/RankJsonPlanTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/RankJsonPlanTest.java
@@ -23,17 +23,17 @@ import org.apache.flink.table.api.TableEnvironment;
import org.apache.flink.table.planner.utils.StreamTableTestUtil;
import org.apache.flink.table.planner.utils.TableTestBase;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
/** Test json serialization for rank. */
-public class RankJsonPlanTest extends TableTestBase {
+class RankJsonPlanTest extends TableTestBase {
private StreamTableTestUtil util;
private TableEnvironment tEnv;
- @Before
- public void setup() {
+ @BeforeEach
+ void setup() {
util = streamTestUtil(TableConfig.getDefault());
tEnv = util.getTableEnv();
@@ -50,7 +50,7 @@ public class RankJsonPlanTest extends TableTestBase {
}
@Test
- public void testRank() {
+ void testRank() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " a bigint,\n"
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/SortJsonPlanTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/SortJsonPlanTest.java
index a23264cc2b7..91c62f9fe33 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/SortJsonPlanTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/SortJsonPlanTest.java
@@ -23,17 +23,17 @@ import org.apache.flink.table.api.TableEnvironment;
import org.apache.flink.table.planner.utils.StreamTableTestUtil;
import org.apache.flink.table.planner.utils.TableTestBase;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
/** Test json serialization for sort limit. */
-public class SortJsonPlanTest extends TableTestBase {
+class SortJsonPlanTest extends TableTestBase {
private StreamTableTestUtil util;
private TableEnvironment tEnv;
- @Before
- public void setup() {
+ @BeforeEach
+ void setup() {
util = streamTestUtil(TableConfig.getDefault());
tEnv = util.getTableEnv();
@@ -50,7 +50,7 @@ public class SortJsonPlanTest extends TableTestBase {
}
@Test
- public void testSort() {
+ void testSort() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " a bigint,\n"
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/SortLimitJsonPlanTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/SortLimitJsonPlanTest.java
index 089f4d676f4..374b3096962 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/SortLimitJsonPlanTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/SortLimitJsonPlanTest.java
@@ -23,17 +23,17 @@ import org.apache.flink.table.api.TableEnvironment;
import org.apache.flink.table.planner.utils.StreamTableTestUtil;
import org.apache.flink.table.planner.utils.TableTestBase;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
/** Test json serialization for sort limit. */
-public class SortLimitJsonPlanTest extends TableTestBase {
+class SortLimitJsonPlanTest extends TableTestBase {
private StreamTableTestUtil util;
private TableEnvironment tEnv;
- @Before
- public void setup() {
+ @BeforeEach
+ void setup() {
util = streamTestUtil(TableConfig.getDefault());
tEnv = util.getTableEnv();
@@ -50,7 +50,7 @@ public class SortLimitJsonPlanTest extends TableTestBase {
}
@Test
- public void testSortLimit() {
+ void testSortLimit() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " a bigint,\n"
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/TableSinkJsonPlanTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/TableSinkJsonPlanTest.java
index 1536d3e499a..3c321b5c59a 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/TableSinkJsonPlanTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/TableSinkJsonPlanTest.java
@@ -24,17 +24,17 @@ import org.apache.flink.table.planner.runtime.utils.JavaUserDefinedScalarFunctio
import org.apache.flink.table.planner.utils.StreamTableTestUtil;
import org.apache.flink.table.planner.utils.TableTestBase;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
/** Test json serialization/deserialization for table sink. */
-public class TableSinkJsonPlanTest extends TableTestBase {
+class TableSinkJsonPlanTest extends TableTestBase {
private StreamTableTestUtil util;
private TableEnvironment tEnv;
- @Before
- public void setup() {
+ @BeforeEach
+ void setup() {
util = streamTestUtil(TableConfig.getDefault());
tEnv = util.getTableEnv();
@@ -50,7 +50,7 @@ public class TableSinkJsonPlanTest extends TableTestBase {
}
@Test
- public void testOverwrite() {
+ void testOverwrite() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " a bigint,\n"
@@ -65,7 +65,7 @@ public class TableSinkJsonPlanTest extends TableTestBase {
}
@Test
- public void testPartitioning() {
+ void testPartitioning() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " a bigint,\n"
@@ -80,7 +80,7 @@ public class TableSinkJsonPlanTest extends TableTestBase {
}
@Test
- public void testWritingMetadata() {
+ void testWritingMetadata() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " a bigint,\n"
@@ -94,7 +94,7 @@ public class TableSinkJsonPlanTest extends TableTestBase {
}
@Test
- public void testCdcWithNonDeterministicFuncSinkWithDifferentPk() {
+ void testCdcWithNonDeterministicFuncSinkWithDifferentPk() {
tEnv.createTemporaryFunction(
"ndFunc", new JavaUserDefinedScalarFunctions.NonDeterministicUdf());
@@ -129,7 +129,7 @@ public class TableSinkJsonPlanTest extends TableTestBase {
}
@Test
- public void testPartialInsert() {
+ void testPartialInsert() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " a bigint,\n"
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/TableSourceJsonPlanTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/TableSourceJsonPlanTest.java
index 390e0901eca..fef94f021e0 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/TableSourceJsonPlanTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/TableSourceJsonPlanTest.java
@@ -24,17 +24,17 @@ import org.apache.flink.table.api.TableEnvironment;
import org.apache.flink.table.planner.utils.StreamTableTestUtil;
import org.apache.flink.table.planner.utils.TableTestBase;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
/** Test json serialization/deserialization for table source. */
-public class TableSourceJsonPlanTest extends TableTestBase {
+class TableSourceJsonPlanTest extends TableTestBase {
private StreamTableTestUtil util;
private TableEnvironment tEnv;
- @Before
- public void setup() {
+ @BeforeEach
+ void setup() {
util = streamTestUtil(TableConfig.getDefault());
tEnv = util.getTableEnv();
@@ -60,7 +60,7 @@ public class TableSourceJsonPlanTest extends TableTestBase {
}
@Test
- public void testProjectPushDown() {
+ void testProjectPushDown() {
String sinkTableDdl =
"CREATE TABLE sink (\n"
+ " a bigint,\n"
@@ -73,7 +73,7 @@ public class TableSourceJsonPlanTest extends TableTestBase {
}
@Test
- public void testReadingMetadata() {
+ void testReadingMetadata() {
String srcTableDdl =
"CREATE TABLE MyTable2 (\n"
+ " a bigint,\n"
@@ -98,7 +98,7 @@ public class TableSourceJsonPlanTest extends TableTestBase {
}
@Test
- public void testFilterPushDown() {
+ void testFilterPushDown() {
String srcTableDdl =
"CREATE TABLE src (\n"
+ " a bigint,\n"
@@ -113,12 +113,12 @@ public class TableSourceJsonPlanTest extends TableTestBase {
}
@Test
- public void testLimitPushDown() {
+ void testLimitPushDown() {
util.verifyJsonPlan("insert into MySink select * from MyTable limit 3");
}
@Test
- public void testPartitionPushDown() {
+ void testPartitionPushDown() {
String srcTableDdl =
"CREATE TABLE PartitionTable (\n"
+ " a bigint,\n"
@@ -134,7 +134,7 @@ public class TableSourceJsonPlanTest extends TableTestBase {
}
@Test
- public void testWatermarkPushDown() {
+ void testWatermarkPushDown() {
String srcTableDdl =
"CREATE TABLE WatermarkTable (\n"
+ " a bigint,\n"
@@ -160,7 +160,7 @@ public class TableSourceJsonPlanTest extends TableTestBase {
}
@Test
- public void testReuseSourceWithoutProjectionPushDown() {
+ void testReuseSourceWithoutProjectionPushDown() {
tEnv.executeSql(
"CREATE TEMPORARY TABLE src (\n"
+ " x varchar,\n"
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/TemporalJoinJsonPlanTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/TemporalJoinJsonPlanTest.java
index 5d51c8757a4..da3e6eaebae 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/TemporalJoinJsonPlanTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/TemporalJoinJsonPlanTest.java
@@ -24,19 +24,19 @@ import org.apache.flink.table.functions.TemporalTableFunction;
import org.apache.flink.table.planner.utils.StreamTableTestUtil;
import org.apache.flink.table.planner.utils.TableTestBase;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
import static org.apache.flink.table.api.Expressions.$;
/** Test json serialization/deserialization for TemporalJoin. */
-public class TemporalJoinJsonPlanTest extends TableTestBase {
+class TemporalJoinJsonPlanTest extends TableTestBase {
private StreamTableTestUtil util;
private TableEnvironment tEnv;
- @Before
- public void setup() {
+ @BeforeEach
+ void setup() {
util = streamTestUtil(TableConfig.getDefault());
tEnv = util.getTableEnv();
@@ -66,7 +66,7 @@ public class TemporalJoinJsonPlanTest extends TableTestBase {
}
@Test
- public void testJoinTemporalFunction() {
+ void testJoinTemporalFunction() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " a int\n"
@@ -83,7 +83,7 @@ public class TemporalJoinJsonPlanTest extends TableTestBase {
}
@Test
- public void testTemporalTableJoin() {
+ void testTemporalTableJoin() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " a int\n"
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/TemporalSortJsonPlanTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/TemporalSortJsonPlanTest.java
index 3ba476dc5c5..8ebd6a47e59 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/TemporalSortJsonPlanTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/TemporalSortJsonPlanTest.java
@@ -23,16 +23,16 @@ import org.apache.flink.table.api.TableEnvironment;
import org.apache.flink.table.planner.utils.StreamTableTestUtil;
import org.apache.flink.table.planner.utils.TableTestBase;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
/** Test json serialization/deserialization for temporal sort. */
-public class TemporalSortJsonPlanTest extends TableTestBase {
+class TemporalSortJsonPlanTest extends TableTestBase {
private StreamTableTestUtil util;
- @Before
- public void setup() {
+ @BeforeEach
+ void setup() {
util = streamTestUtil(TableConfig.getDefault());
TableEnvironment tEnv = util.getTableEnv();
@@ -57,12 +57,12 @@ public class TemporalSortJsonPlanTest extends TableTestBase {
}
@Test
- public void testSortProcessingTime() {
+ void testSortProcessingTime() {
util.verifyJsonPlan("insert into MySink SELECT a FROM MyTable order by proctime, c");
}
@Test
- public void testSortRowTime() {
+ void testSortRowTime() {
util.verifyJsonPlan("insert into MySink SELECT a FROM MyTable order by rowtime, c");
}
}
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/UnionJsonPlanTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/UnionJsonPlanTest.java
index 7bad10a85d6..bbb1b041c23 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/UnionJsonPlanTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/UnionJsonPlanTest.java
@@ -23,16 +23,16 @@ import org.apache.flink.table.api.TableEnvironment;
import org.apache.flink.table.planner.utils.StreamTableTestUtil;
import org.apache.flink.table.planner.utils.TableTestBase;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
/** Test json serialization/deserialization for union. */
-public class UnionJsonPlanTest extends TableTestBase {
+class UnionJsonPlanTest extends TableTestBase {
private StreamTableTestUtil util;
private TableEnvironment tEnv;
- @Before
- public void setup() {
+ @BeforeEach
+ void setup() {
util = streamTestUtil(TableConfig.getDefault());
tEnv = util.getTableEnv();
@@ -58,7 +58,7 @@ public class UnionJsonPlanTest extends TableTestBase {
}
@Test
- public void testUnion() {
+ void testUnion() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " a bigint,\n"
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/ValuesJsonPlanTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/ValuesJsonPlanTest.java
index b42a3a24ff4..23eae28bc66 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/ValuesJsonPlanTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/ValuesJsonPlanTest.java
@@ -23,17 +23,17 @@ import org.apache.flink.table.api.TableEnvironment;
import org.apache.flink.table.planner.utils.StreamTableTestUtil;
import org.apache.flink.table.planner.utils.TableTestBase;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
/** Test json serialization/deserialization for values. */
-public class ValuesJsonPlanTest extends TableTestBase {
+class ValuesJsonPlanTest extends TableTestBase {
private StreamTableTestUtil util;
private TableEnvironment tEnv;
- @Before
- public void setup() {
+ @BeforeEach
+ void setup() {
util = streamTestUtil(TableConfig.getDefault());
tEnv = util.getTableEnv();
String sinkTableDdl =
@@ -49,7 +49,7 @@ public class ValuesJsonPlanTest extends TableTestBase {
}
@Test
- public void testValues() {
+ void testValues() {
util.verifyJsonPlan(
"INSERT INTO MySink SELECT * FROM (VALUES (1, 2, 'Hi'), (3, 4, 'Hello'))");
}
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/WatermarkAssignerJsonPlanTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/WatermarkAssignerJsonPlanTest.java
index 85528624270..a8690eec56f 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/WatermarkAssignerJsonPlanTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/WatermarkAssignerJsonPlanTest.java
@@ -23,23 +23,23 @@ import org.apache.flink.table.api.TableEnvironment;
import org.apache.flink.table.planner.utils.StreamTableTestUtil;
import org.apache.flink.table.planner.utils.TableTestBase;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
/** Test json serialization/deserialization for watermark assigner. */
-public class WatermarkAssignerJsonPlanTest extends TableTestBase {
+class WatermarkAssignerJsonPlanTest extends TableTestBase {
private StreamTableTestUtil util;
private TableEnvironment tEnv;
- @Before
- public void setup() {
+ @BeforeEach
+ void setup() {
util = streamTestUtil(TableConfig.getDefault());
tEnv = util.getTableEnv();
}
@Test
- public void testWatermarkAssigner() {
+ void testWatermarkAssigner() {
String srcTableDdl =
"CREATE TABLE WatermarkTable (\n"
+ " a bigint,\n"
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/WindowAggregateJsonPlanTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/WindowAggregateJsonPlanTest.java
index 7f6672f3fd0..c6a2662c813 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/WindowAggregateJsonPlanTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/WindowAggregateJsonPlanTest.java
@@ -25,17 +25,17 @@ import org.apache.flink.table.planner.plan.utils.JavaUserDefinedAggFunctions.Con
import org.apache.flink.table.planner.utils.StreamTableTestUtil;
import org.apache.flink.table.planner.utils.TableTestBase;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
/** Test json serialization/deserialization for window aggregate. */
-public class WindowAggregateJsonPlanTest extends TableTestBase {
+class WindowAggregateJsonPlanTest extends TableTestBase {
private StreamTableTestUtil util;
private TableEnvironment tEnv;
- @Before
- public void setup() {
+ @BeforeEach
+ void setup() {
util = streamTestUtil(TableConfig.getDefault());
tEnv = util.getTableEnv();
@@ -53,7 +53,7 @@ public class WindowAggregateJsonPlanTest extends TableTestBase {
}
@Test
- public void testEventTimeTumbleWindow() {
+ void testEventTimeTumbleWindow() {
tEnv.createFunction("concat_distinct_agg", ConcatDistinctAggFunction.class);
String sinkTableDdl =
"CREATE TABLE MySink (\n"
@@ -82,7 +82,7 @@ public class WindowAggregateJsonPlanTest extends TableTestBase {
}
@Test
- public void testEventTimeTumbleWindowWithOffset() {
+ void testEventTimeTumbleWindowWithOffset() {
tEnv.createFunction("concat_distinct_agg", ConcatDistinctAggFunction.class);
String sinkTableDdl =
"CREATE TABLE MySink (\n"
@@ -115,7 +115,7 @@ public class WindowAggregateJsonPlanTest extends TableTestBase {
}
@Test
- public void testProcTimeTumbleWindow() {
+ void testProcTimeTumbleWindow() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " b BIGINT,\n"
@@ -135,7 +135,7 @@ public class WindowAggregateJsonPlanTest extends TableTestBase {
}
@Test
- public void testEventTimeHopWindow() {
+ void testEventTimeHopWindow() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " b BIGINT,\n"
@@ -155,7 +155,7 @@ public class WindowAggregateJsonPlanTest extends TableTestBase {
}
@Test
- public void testEventTimeHopWindowWithOffset() {
+ void testEventTimeHopWindowWithOffset() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " b BIGINT,\n"
@@ -180,7 +180,7 @@ public class WindowAggregateJsonPlanTest extends TableTestBase {
}
@Test
- public void testProcTimeHopWindow() {
+ void testProcTimeHopWindow() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " b BIGINT,\n"
@@ -198,7 +198,7 @@ public class WindowAggregateJsonPlanTest extends TableTestBase {
}
@Test
- public void testEventTimeCumulateWindow() {
+ void testEventTimeCumulateWindow() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " b BIGINT,\n"
@@ -224,7 +224,7 @@ public class WindowAggregateJsonPlanTest extends TableTestBase {
}
@Test
- public void testEventTimeCumulateWindowWithOffset() {
+ void testEventTimeCumulateWindowWithOffset() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " b BIGINT,\n"
@@ -251,7 +251,7 @@ public class WindowAggregateJsonPlanTest extends TableTestBase {
}
@Test
- public void testProcTimeCumulateWindow() {
+ void testProcTimeCumulateWindow() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " b BIGINT,\n"
@@ -273,7 +273,7 @@ public class WindowAggregateJsonPlanTest extends TableTestBase {
}
@Test
- public void testDistinctSplitEnabled() {
+ void testDistinctSplitEnabled() {
tEnv.getConfig()
.set(OptimizerConfigOptions.TABLE_OPTIMIZER_DISTINCT_AGG_SPLIT_ENABLED, true);
String sinkTableDdl =
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/WindowJoinJsonPlanTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/WindowJoinJsonPlanTest.java
index 58a36f01df5..5d69beb7ace 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/WindowJoinJsonPlanTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/WindowJoinJsonPlanTest.java
@@ -23,17 +23,17 @@ import org.apache.flink.table.api.TableEnvironment;
import org.apache.flink.table.planner.utils.StreamTableTestUtil;
import org.apache.flink.table.planner.utils.TableTestBase;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
/** Test json serialization/deserialization for window join. */
-public class WindowJoinJsonPlanTest extends TableTestBase {
+class WindowJoinJsonPlanTest extends TableTestBase {
private StreamTableTestUtil util;
private TableEnvironment tEnv;
- @Before
- public void setup() {
+ @BeforeEach
+ void setup() {
util = streamTestUtil(TableConfig.getDefault());
tEnv = util.getTableEnv();
@@ -63,7 +63,7 @@ public class WindowJoinJsonPlanTest extends TableTestBase {
}
@Test
- public void testEventTimeTumbleWindow() {
+ void testEventTimeTumbleWindow() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " l_a INT,\n"
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/WindowTableFunctionJsonPlanTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/WindowTableFunctionJsonPlanTest.java
index 87da0b2e2e2..2b9ec7ba1e4 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/WindowTableFunctionJsonPlanTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/WindowTableFunctionJsonPlanTest.java
@@ -23,17 +23,17 @@ import org.apache.flink.table.api.TableEnvironment;
import org.apache.flink.table.planner.utils.StreamTableTestUtil;
import org.apache.flink.table.planner.utils.TableTestBase;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
/** Test json serialization/deserialization for window table function. */
-public class WindowTableFunctionJsonPlanTest extends TableTestBase {
+class WindowTableFunctionJsonPlanTest extends TableTestBase {
private StreamTableTestUtil util;
private TableEnvironment tEnv;
- @Before
- public void setup() {
+ @BeforeEach
+ void setup() {
util = streamTestUtil(TableConfig.getDefault());
tEnv = util.getTableEnv();
@@ -63,7 +63,7 @@ public class WindowTableFunctionJsonPlanTest extends TableTestBase {
}
@Test
- public void testIndividualWindowTVF() {
+ void testIndividualWindowTVF() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " window_start TIMESTAMP(3),\n"
@@ -85,7 +85,7 @@ public class WindowTableFunctionJsonPlanTest extends TableTestBase {
}
@Test
- public void testIndividualWindowTVFProcessingTime() {
+ void testIndividualWindowTVFProcessingTime() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " window_start TIMESTAMP(3),\n"
@@ -107,7 +107,7 @@ public class WindowTableFunctionJsonPlanTest extends TableTestBase {
}
@Test
- public void testFollowedByWindowJoin() {
+ void testFollowedByWindowJoin() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " window_start TIMESTAMP(3) NOT NULL,\n"
@@ -155,7 +155,7 @@ public class WindowTableFunctionJsonPlanTest extends TableTestBase {
}
@Test
- public void testFollowedByWindowRank() {
+ void testFollowedByWindowRank() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " window_start TIMESTAMP(3),\n"
@@ -182,7 +182,7 @@ public class WindowTableFunctionJsonPlanTest extends TableTestBase {
}
@Test
- public void testFollowedByWindowDeduplicate() {
+ void testFollowedByWindowDeduplicate() {
String sinkTableDdl =
"CREATE TABLE MySink (\n"
+ " window_start TIMESTAMP(3),\n"
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/optimize/ClearQueryBlockAliasResolverTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/optimize/ClearQueryBlockAliasResolverTest.java
index 3fd2b8131e1..873604a3b0b 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/optimize/ClearQueryBlockAliasResolverTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/optimize/ClearQueryBlockAliasResolverTest.java
@@ -33,7 +33,7 @@ import java.util.List;
import java.util.stream.Collectors;
/** A test class for {@link ClearQueryBlockAliasResolver}. */
-public class ClearQueryBlockAliasResolverTest extends JoinHintTestBase {
+class ClearQueryBlockAliasResolverTest extends JoinHintTestBase {
// use any join hint for test
@Override
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/optimize/ScanReuseTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/optimize/ScanReuseTest.java
index 7016e15d15e..82b9d851ac8 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/optimize/ScanReuseTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/optimize/ScanReuseTest.java
@@ -21,37 +21,38 @@ package org.apache.flink.table.planner.plan.optimize;
import org.apache.flink.table.api.TableConfig;
import org.apache.flink.table.planner.utils.TableTestBase;
import org.apache.flink.table.planner.utils.TableTestUtil;
+import org.apache.flink.testutils.junit.extensions.parameterized.ParameterizedTestExtension;
+import org.apache.flink.testutils.junit.extensions.parameterized.Parameters;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.TestTemplate;
+import org.junit.jupiter.api.extension.ExtendWith;
import java.util.Arrays;
import java.util.Collection;
-import static org.junit.Assume.assumeTrue;
+import static org.assertj.core.api.Assumptions.assumeThat;
/** Test push project into source with sub plan reuse. */
-@RunWith(Parameterized.class)
-public class ScanReuseTest extends TableTestBase {
+@ExtendWith(ParameterizedTestExtension.class)
+class ScanReuseTest extends TableTestBase {
private final boolean isStreaming;
private final TableTestUtil util;
- public ScanReuseTest(boolean isStreaming) {
+ ScanReuseTest(boolean isStreaming) {
this.isStreaming = isStreaming;
TableConfig config = TableConfig.getDefault();
this.util = isStreaming ? streamTestUtil(config) : batchTestUtil(config);
}
- @Parameterized.Parameters(name = "isStreaming: {0}")
- public static Collection<Boolean> parameters() {
+ @Parameters(name = "isStreaming: {0}")
+ private static Collection<Boolean> parameters() {
return Arrays.asList(true, false);
}
- @Before
- public void before() {
+ @BeforeEach
+ void before() {
String table =
isStreaming
? "CREATE TABLE MyTable (\n"
@@ -89,29 +90,29 @@ public class ScanReuseTest extends TableTestBase {
util.tableEnv().executeSql(table);
}
- @Test
- public void testProject() {
+ @TestTemplate
+ void testProject() {
String sqlQuery = "SELECT T1.a, T1.c, T2.c FROM MyTable T1, MyTable T2 WHERE T1.a = T2.a";
util.verifyExecPlan(sqlQuery);
}
- @Test
- public void testProject1() {
+ @TestTemplate
+ void testProject1() {
// One side projection
String sqlQuery =
"SELECT T1.a, T1.b, T1.c, T2.c FROM MyTable T1, MyTable T2 WHERE T1.a = T2.a";
util.verifyExecPlan(sqlQuery);
}
- @Test
- public void testProject2() {
+ @TestTemplate
+ void testProject2() {
// Two side projection
String sqlQuery = "SELECT T1.a, T1.b, T2.c FROM MyTable T1, MyTable T2 WHERE T1.a = T2.a";
util.verifyExecPlan(sqlQuery);
}
- @Test
- public void testProjectNested1() {
+ @TestTemplate
+ void testProjectNested1() {
String sqlQuery =
"SELECT T1.a, T1.i, T2.j FROM"
+ " (SELECT a, nested.i as i FROM MyTable) T1,"
@@ -119,8 +120,8 @@ public class ScanReuseTest extends TableTestBase {
util.verifyExecPlan(sqlQuery);
}
- @Test
- public void testProjectNested2() {
+ @TestTemplate
+ void testProjectNested2() {
String sqlQuery =
"SELECT T1.a, T1.i, T2.i FROM"
+ " (SELECT a, nested.i as i FROM MyTable) T1,"
@@ -128,8 +129,8 @@ public class ScanReuseTest extends TableTestBase {
util.verifyExecPlan(sqlQuery);
}
- @Test
- public void testProjectNestedWithWholeField() {
+ @TestTemplate
+ void testProjectNestedWithWholeField() {
String sqlQuery =
"SELECT * FROM"
+ " (SELECT a, nested.i FROM MyTable) T1,"
@@ -137,16 +138,16 @@ public class ScanReuseTest extends TableTestBase {
util.verifyExecPlan(sqlQuery);
}
- @Test
- public void testProjectWithExpr() {
+ @TestTemplate
+ void testProjectWithExpr() {
String sqlQuery =
"SELECT T1.a, T1.b, T2.c FROM"
+ " (SELECT a, b + 1 as b FROM MyTable) T1, MyTable T2 WHERE T1.a = T2.a";
util.verifyExecPlan(sqlQuery);
}
- @Test
- public void testProjectWithFilter() {
+ @TestTemplate
+ void testProjectWithFilter() {
String sqlQuery =
"SELECT T1.a, T1.b, T2.c FROM"
+ " (SELECT * FROM MyTable WHERE b = 2) T1,"
@@ -154,8 +155,8 @@ public class ScanReuseTest extends TableTestBase {
util.verifyExecPlan(sqlQuery);
}
- @Test
- public void testProjectWithMeta1() {
+ @TestTemplate
+ void testProjectWithMeta1() {
// One side meta
String sqlQuery =
"SELECT T1.a, T1.b, T1.metadata_1, T1.metadata_2, T2.c, T2.metadata_2"
@@ -163,8 +164,8 @@ public class ScanReuseTest extends TableTestBase {
util.verifyExecPlan(sqlQuery);
}
- @Test
- public void testProjectWithMeta2() {
+ @TestTemplate
+ void testProjectWithMeta2() {
// One side meta
String sqlQuery =
"SELECT T1.a, T1.b, T1.metadata_1, T2.c, T2.metadata_2"
@@ -172,8 +173,8 @@ public class ScanReuseTest extends TableTestBase {
util.verifyExecPlan(sqlQuery);
}
- @Test
- public void testProjectWithMeta3() {
+ @TestTemplate
+ void testProjectWithMeta3() {
// meta projection
String sqlQuery =
"SELECT T1.a, T1.b, T1.metadata_1, T2.c, T2.metadata_1"
@@ -181,16 +182,16 @@ public class ScanReuseTest extends TableTestBase {
util.verifyExecPlan(sqlQuery);
}
- @Test
- public void testProjectWithMetaAndCompute() {
+ @TestTemplate
+ void testProjectWithMetaAndCompute() {
String sqlQuery =
"SELECT T1.a, T1.b, T1.metadata_1, T1.compute_metadata, T2.c, T2.metadata_2"
+ " FROM MyTable T1, MyTable T2 WHERE T1.a = T2.a";
util.verifyExecPlan(sqlQuery);
}
- @Test
- public void testProjectWithHints() {
+ @TestTemplate
+ void testProjectWithHints() {
String sqlQuery =
"SELECT T1.a, T1.c, T2.c FROM"
+ " MyTable /*+ OPTIONS('source.num-element-to-skip'='1') */ T1,"
@@ -199,8 +200,8 @@ public class ScanReuseTest extends TableTestBase {
util.verifyExecPlan(sqlQuery);
}
- @Test
- public void testProjectReuseWithHints() {
+ @TestTemplate
+ void testProjectReuseWithHints() {
String sqlQuery =
"SELECT T1.a, T1.c, T2.c FROM"
+ " MyTable /*+ OPTIONS('source.num-element-to-skip'='1') */ T1,"
@@ -209,8 +210,8 @@ public class ScanReuseTest extends TableTestBase {
util.verifyExecPlan(sqlQuery);
}
- @Test
- public void testProjectWithDifferentHints() {
+ @TestTemplate
+ void testProjectWithDifferentHints() {
String sqlQuery =
"SELECT T1.a, T1.c, T2.c FROM"
+ " MyTable /*+ OPTIONS('source.num-element-to-skip'='1') */ T1,"
@@ -219,8 +220,8 @@ public class ScanReuseTest extends TableTestBase {
util.verifyExecPlan(sqlQuery);
}
- @Test
- public void testProjectWithFilterPushDown() {
+ @TestTemplate
+ void testProjectWithFilterPushDown() {
String sqlQuery =
"SELECT T1.a, T1.c, T2.c FROM"
+ " (SELECT * FROM"
@@ -231,8 +232,8 @@ public class ScanReuseTest extends TableTestBase {
util.verifyExecPlan(sqlQuery);
}
- @Test
- public void testProjectReuseWithFilterPushDown() {
+ @TestTemplate
+ void testProjectReuseWithFilterPushDown() {
String sqlQuery =
"SELECT T1.a, T1.c, T2.c FROM"
+ " (SELECT * FROM"
@@ -243,8 +244,8 @@ public class ScanReuseTest extends TableTestBase {
util.verifyExecPlan(sqlQuery);
}
- @Test
- public void testProjectReuseWithWatermark() {
+ @TestTemplate
+ void testProjectReuseWithWatermark() {
if (isStreaming) {
String ddl =
"CREATE TABLE W_T (\n"
@@ -271,8 +272,8 @@ public class ScanReuseTest extends TableTestBase {
}
}
- @Test
- public void testProjectWithLimitPushDown() {
+ @TestTemplate
+ void testProjectWithLimitPushDown() {
String sqlQuery =
"SELECT T1.a, T1.c, T2.c FROM"
+ " (SELECT * FROM"
@@ -283,8 +284,8 @@ public class ScanReuseTest extends TableTestBase {
util.verifyExecPlan(sqlQuery);
}
- @Test
- public void testProjectReuseWithLimitPushDown() {
+ @TestTemplate
+ void testProjectReuseWithLimitPushDown() {
String sqlQuery =
"SELECT T1.a, T1.c, T2.c FROM"
+ " (SELECT * FROM"
@@ -295,8 +296,8 @@ public class ScanReuseTest extends TableTestBase {
util.verifyExecPlan(sqlQuery);
}
- @Test
- public void testProjectWithPartitionPushDown() {
+ @TestTemplate
+ void testProjectWithPartitionPushDown() {
if (!isStreaming) {
String sqlQuery =
"SELECT T1.a, T1.c, T2.c FROM"
@@ -311,8 +312,8 @@ public class ScanReuseTest extends TableTestBase {
}
}
- @Test
- public void testProjectReuseWithPartitionPushDown() {
+ @TestTemplate
+ void testProjectReuseWithPartitionPushDown() {
if (!isStreaming) {
String sqlQuery =
"SELECT T1.a, T1.c, T2.c FROM"
@@ -327,9 +328,9 @@ public class ScanReuseTest extends TableTestBase {
}
}
- @Test
- public void testReuseWithReadMetadataAndWatermarkPushDown1() {
- assumeTrue(isStreaming);
+ @TestTemplate
+ void testReuseWithReadMetadataAndWatermarkPushDown1() {
+ assumeThat(isStreaming).isTrue();
String ddl =
"CREATE TABLE MyTable1 (\n"
+ " metadata_0 int METADATA VIRTUAL,\n"
@@ -364,9 +365,9 @@ public class ScanReuseTest extends TableTestBase {
util.verifyExecPlan(sqlQuery);
}
- @Test
- public void testReuseWithReadMetadataAndWatermarkPushDown2() {
- assumeTrue(isStreaming);
+ @TestTemplate
+ void testReuseWithReadMetadataAndWatermarkPushDown2() {
+ assumeThat(isStreaming).isTrue();
String ddl =
"CREATE TABLE MyTable1 (\n"
+ " metadata_0 int METADATA VIRTUAL,\n"
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/optimize/program/DynamicPartitionPruningProgramTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/optimize/program/DynamicPartitionPruningProgramTest.java
index dd776667a15..9eae51af412 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/optimize/program/DynamicPartitionPruningProgramTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/optimize/program/DynamicPartitionPruningProgramTest.java
@@ -27,20 +27,20 @@ import org.apache.flink.table.planner.factories.TestValuesCatalog;
import org.apache.flink.table.planner.utils.BatchTableTestUtil;
import org.apache.flink.table.planner.utils.TableTestBase;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
/**
* Tests for rules that extend {@link FlinkDynamicPartitionPruningProgram} to create {@link
* org.apache.flink.table.planner.plan.nodes.physical.batch.BatchPhysicalDynamicFilteringTableSourceScan}.
*/
-public class DynamicPartitionPruningProgramTest extends TableTestBase {
+class DynamicPartitionPruningProgramTest extends TableTestBase {
private final BatchTableTestUtil util = batchTestUtil(TableConfig.getDefault());
private final TestValuesCatalog catalog =
new TestValuesCatalog("testCatalog", "test_database", true);
- @Before
- public void setup() {
+ @BeforeEach
+ void setup() {
catalog.open();
util.tableEnv().registerCatalog("testCatalog", catalog);
util.tableEnv().useCatalog("testCatalog");
@@ -82,7 +82,7 @@ public class DynamicPartitionPruningProgramTest extends TableTestBase {
}
@Test
- public void testDimTableFilteringFieldsNotInJoinKey() {
+ void testDimTableFilteringFieldsNotInJoinKey() {
// fact_part.id not in dynamic-filtering-fields, so dynamic partition pruning will not
// succeed.
String query =
@@ -91,7 +91,7 @@ public class DynamicPartitionPruningProgramTest extends TableTestBase {
}
@Test
- public void testDimTableWithoutFilter() {
+ void testDimTableWithoutFilter() {
// If dim side without filters, dynamic partition pruning will not succeed.
String query =
"Select * from dim, fact_part where fact_part.fact_date_sk = dim.dim_date_sk"
@@ -100,7 +100,7 @@ public class DynamicPartitionPruningProgramTest extends TableTestBase {
}
@Test
- public void testDimTableWithUnsuitableFilter() {
+ void testDimTableWithUnsuitableFilter() {
// For filters in dim table side, they need to filter enough partitions. Like NOT NULL will
// not succeed for dynamic partition pruning.
String query =
@@ -109,7 +109,7 @@ public class DynamicPartitionPruningProgramTest extends TableTestBase {
}
@Test
- public void testFactTableIsNotPartitionTable() {
+ void testFactTableIsNotPartitionTable() {
// non-partition fact table. Dynamic partition pruning will not succeed if fact side is not
// partition table.
util.tableEnv()
@@ -134,7 +134,7 @@ public class DynamicPartitionPruningProgramTest extends TableTestBase {
}
@Test
- public void testFactTableIsLegacySource() {
+ void testFactTableIsLegacySource() {
util.tableEnv()
.executeSql(
"CREATE TABLE legacy_source (\n"
@@ -158,7 +158,7 @@ public class DynamicPartitionPruningProgramTest extends TableTestBase {
}
@Test
- public void testDimTableWithFilterPushDown() {
+ void testDimTableWithFilterPushDown() {
// Even though have filter push down, dynamic partition pruning will succeed.
String query =
"Select * from fact_part join (Select * from dim) t1"
@@ -167,7 +167,7 @@ public class DynamicPartitionPruningProgramTest extends TableTestBase {
}
@Test
- public void testJoinKeyIsDynamicFilterFieldNotPartitionKey() {
+ void testJoinKeyIsDynamicFilterFieldNotPartitionKey() {
// Not only partition key, but also dynamic filtering field in join key will succeed in
// dynamic partition pruning.
String query =
@@ -176,7 +176,7 @@ public class DynamicPartitionPruningProgramTest extends TableTestBase {
}
@Test
- public void testDynamicFilteringFactInRightRule() throws TableNotExistException {
+ void testDynamicFilteringFactInRightRule() throws TableNotExistException {
// Base rule.
CatalogTableStatistics tableStatistics = new CatalogTableStatistics(1, 1, 1, 1);
catalog.alterTableStatistics(
@@ -187,7 +187,7 @@ public class DynamicPartitionPruningProgramTest extends TableTestBase {
}
@Test
- public void testDynamicFilteringFactInLeftRule() throws TableNotExistException {
+ void testDynamicFilteringFactInLeftRule() throws TableNotExistException {
// Base rule.
CatalogTableStatistics tableStatistics = new CatalogTableStatistics(1, 1, 1, 1);
catalog.alterTableStatistics(
@@ -198,7 +198,7 @@ public class DynamicPartitionPruningProgramTest extends TableTestBase {
}
@Test
- public void testDynamicFilteringFactInRightWithExchangeRule() {
+ void testDynamicFilteringFactInRightWithExchangeRule() {
// Base rule.
String query =
"Select * from dim, fact_part where fact_part.fact_date_sk = dim.dim_date_sk and dim.price < 500";
@@ -206,7 +206,7 @@ public class DynamicPartitionPruningProgramTest extends TableTestBase {
}
@Test
- public void testDynamicFilteringFactInLeftWithExchangeRule() {
+ void testDynamicFilteringFactInLeftWithExchangeRule() {
// Base rule.
String query =
"Select * from fact_part, dim where fact_part.fact_date_sk = dim.dim_date_sk and dim.price < 500";
@@ -214,7 +214,7 @@ public class DynamicPartitionPruningProgramTest extends TableTestBase {
}
@Test
- public void testDynamicFilteringFactInRightWithCalcRule() throws TableNotExistException {
+ void testDynamicFilteringFactInRightWithCalcRule() throws TableNotExistException {
// Base rule.
CatalogTableStatistics tableStatistics = new CatalogTableStatistics(1, 1, 1, 1);
catalog.alterTableStatistics(
@@ -226,7 +226,7 @@ public class DynamicPartitionPruningProgramTest extends TableTestBase {
}
@Test
- public void testDynamicFilteringFactInLeftWithCalcRule() throws TableNotExistException {
+ void testDynamicFilteringFactInLeftWithCalcRule() throws TableNotExistException {
// Base rule.
CatalogTableStatistics tableStatistics = new CatalogTableStatistics(1, 1, 1, 1);
catalog.alterTableStatistics(
@@ -238,7 +238,7 @@ public class DynamicPartitionPruningProgramTest extends TableTestBase {
}
@Test
- public void testDynamicFilteringFactInRightWithExchangeAndCalcRule() {
+ void testDynamicFilteringFactInRightWithExchangeAndCalcRule() {
// Base rule.
String query =
"Select * from dim, fact_part where fact_part.fact_date_sk = dim.dim_date_sk"
@@ -247,7 +247,7 @@ public class DynamicPartitionPruningProgramTest extends TableTestBase {
}
@Test
- public void testDynamicFilteringFactInLeftWithExchangeAndCalcRule() {
+ void testDynamicFilteringFactInLeftWithExchangeAndCalcRule() {
// Base rule.
String query =
"Select * from fact_part, dim where fact_part.fact_date_sk = dim.dim_date_sk"
@@ -256,7 +256,7 @@ public class DynamicPartitionPruningProgramTest extends TableTestBase {
}
@Test
- public void testComplexCalcInFactSide() {
+ void testComplexCalcInFactSide() {
// Although the partition key is converted, Dynamic Partition pruning can be successfully
// applied.
String query =
@@ -266,7 +266,7 @@ public class DynamicPartitionPruningProgramTest extends TableTestBase {
}
@Test
- public void testPartitionKeysIsComputeColumnsInFactSide() {
+ void testPartitionKeysIsComputeColumnsInFactSide() {
// Dynamic filtering will not succeed for this query.
String query =
"Select * from dim join (select fact_date_sk + 1 as fact_date_sk1, price + 1 as price1 from fact_part) t1"
@@ -275,7 +275,7 @@ public class DynamicPartitionPruningProgramTest extends TableTestBase {
}
@Test
- public void testPartitionKeysOrderIsChangedInFactSide() {
+ void testPartitionKeysOrderIsChangedInFactSide() {
// Dynamic filtering will succeed for this query.
String query =
"Select * from dim join (select fact_date_sk, id, name, amount, price from fact_part) t1"
@@ -284,7 +284,7 @@ public class DynamicPartitionPruningProgramTest extends TableTestBase {
}
@Test
- public void testPartitionKeysNameIsChangedInFactSide() {
+ void testPartitionKeysNameIsChangedInFactSide() {
// Dynamic filtering will succeed for this query.
String query =
"Select * from dim join (select id, name, amount, price, fact_date_sk as fact_date_sk1 from fact_part) t1"
@@ -293,8 +293,7 @@ public class DynamicPartitionPruningProgramTest extends TableTestBase {
}
@Test
- public void testDynamicFilteringFieldIsComputeColumnsInFactSide()
- throws TableNotExistException {
+ void testDynamicFilteringFieldIsComputeColumnsInFactSide() throws TableNotExistException {
CatalogTableStatistics tableStatistics = new CatalogTableStatistics(1, 1, 1, 1);
catalog.alterTableStatistics(
new ObjectPath("test_database", "dim"), tableStatistics, false);
@@ -306,7 +305,7 @@ public class DynamicPartitionPruningProgramTest extends TableTestBase {
}
@Test
- public void testLeftOuterJoinWithFactInLeft() {
+ void testLeftOuterJoinWithFactInLeft() {
// left outer join with fact in left will not succeed. Because if fact in left, filtering
// condition is useless.
String query =
@@ -316,7 +315,7 @@ public class DynamicPartitionPruningProgramTest extends TableTestBase {
}
@Test
- public void testLeftOutJoinWithFactInRight() {
+ void testLeftOutJoinWithFactInRight() {
// left outer join with fact in right will succeed.
String query =
"Select * from dim left outer join fact_part on fact_part.fact_date_sk = dim.dim_date_sk"
@@ -325,7 +324,7 @@ public class DynamicPartitionPruningProgramTest extends TableTestBase {
}
@Test
- public void testSemiJoin() {
+ void testSemiJoin() {
// Now dynamic partition pruning support semi join, this query will succeed.
String query =
"Select * from fact_part where fact_part.fact_date_sk in"
@@ -334,7 +333,7 @@ public class DynamicPartitionPruningProgramTest extends TableTestBase {
}
@Test
- public void testFullOuterJoin() {
+ void testFullOuterJoin() {
// Now dynamic partition pruning don't support full outer join.
String query =
"Select * from fact_part full outer join"
@@ -343,7 +342,7 @@ public class DynamicPartitionPruningProgramTest extends TableTestBase {
}
@Test
- public void testAntiJoin() {
+ void testAntiJoin() {
// Now dynamic partition prune don't support anti join.
String query =
"Select * from fact_part where not exists"
@@ -352,7 +351,7 @@ public class DynamicPartitionPruningProgramTest extends TableTestBase {
}
@Test
- public void testMultiJoin() {
+ void testMultiJoin() {
// Another table.
util.tableEnv()
.executeSql(
@@ -372,7 +371,7 @@ public class DynamicPartitionPruningProgramTest extends TableTestBase {
}
@Test
- public void testComplexDimSideWithJoinInDimSide() {
+ void testComplexDimSideWithJoinInDimSide() {
// TODO, Dpp will not success with complex dim side.
util.tableEnv()
.executeSql(
@@ -405,7 +404,7 @@ public class DynamicPartitionPruningProgramTest extends TableTestBase {
}
@Test
- public void testComplexDimSideWithAggInDimSide() {
+ void testComplexDimSideWithAggInDimSide() {
// Dim side contains agg will not succeed in this version, it will improve later.
util.tableEnv()
.executeSql(
@@ -427,7 +426,7 @@ public class DynamicPartitionPruningProgramTest extends TableTestBase {
}
@Test
- public void testDppWithoutJoinReorder() {
+ void testDppWithoutJoinReorder() {
// Dpp will success
String ddl =
"CREATE TABLE test_database.item (\n"
@@ -453,7 +452,7 @@ public class DynamicPartitionPruningProgramTest extends TableTestBase {
}
@Test
- public void testDppWithSubQuery() {
+ void testDppWithSubQuery() {
// Dpp will success
String ddl =
"CREATE TABLE test_database.item (\n"
@@ -478,7 +477,7 @@ public class DynamicPartitionPruningProgramTest extends TableTestBase {
}
@Test
- public void testDppWithUnionInFactSide() {
+ void testDppWithUnionInFactSide() {
// Dpp will success.
String ddl =
"CREATE TABLE test_database.item (\n"
@@ -501,7 +500,7 @@ public class DynamicPartitionPruningProgramTest extends TableTestBase {
}
@Test
- public void testDppWithAggInFactSideAndJoinKeyInGrouping() {
+ void testDppWithAggInFactSideAndJoinKeyInGrouping() {
// Dpp will success
String ddl =
"CREATE TABLE test_database.item (\n"
@@ -522,7 +521,7 @@ public class DynamicPartitionPruningProgramTest extends TableTestBase {
}
@Test
- public void testDppWithAggInFactSideAndJoinKeyInGroupFunction() {
+ void testDppWithAggInFactSideAndJoinKeyInGroupFunction() {
// Dpp will not success because join key in group function.
String ddl =
"CREATE TABLE test_database.item (\n"
@@ -544,7 +543,7 @@ public class DynamicPartitionPruningProgramTest extends TableTestBase {
}
@Test
- public void testDppWithAggInFactSideWithAggPushDownEnable() {
+ void testDppWithAggInFactSideWithAggPushDownEnable() {
// Dpp will not success while fact side source support agg push down and source agg push
// down enabled is true.
String ddl =
@@ -566,7 +565,7 @@ public class DynamicPartitionPruningProgramTest extends TableTestBase {
}
@Test
- public void testDppWithAggInFactSideWithAggPushDownDisable() {
+ void testDppWithAggInFactSideWithAggPushDownDisable() {
// Dpp will success while fact side source support agg push down but source agg push down
// enabled is false.
TableConfig tableConfig = util.tableEnv().getConfig();
@@ -593,7 +592,7 @@ public class DynamicPartitionPruningProgramTest extends TableTestBase {
}
@Test
- public void testDPPWithFactSideJoinKeyChanged() {
+ void testDPPWithFactSideJoinKeyChanged() {
// If partition keys changed in fact side. DPP factor will not success.
String ddl =
"CREATE TABLE test_database.item (\n"
@@ -615,7 +614,7 @@ public class DynamicPartitionPruningProgramTest extends TableTestBase {
}
@Test
- public void testDPPWithDimSideJoinKeyChanged() {
+ void testDPPWithDimSideJoinKeyChanged() {
// Although partition keys changed in dim side. DPP will success.
String ddl =
"CREATE TABLE test_database.item (\n"
@@ -637,7 +636,7 @@ public class DynamicPartitionPruningProgramTest extends TableTestBase {
}
@Test
- public void testDPPWithJoinKeysNotIncludePartitionKeys() {
+ void testDPPWithJoinKeysNotIncludePartitionKeys() {
// If join keys of partition table join with dim table not include partition keys, dpp will
// not success.
String ddl =
@@ -661,7 +660,7 @@ public class DynamicPartitionPruningProgramTest extends TableTestBase {
}
@Test
- public void testDppFactSideCannotReuseWithSameCommonSource() {
+ void testDppFactSideCannotReuseWithSameCommonSource() {
String query =
"SELECT * FROM(\n"
+ " Select fact_part.id, fact_part.price, fact_part.amount from fact_part join (Select * from dim) t1"
@@ -671,7 +670,7 @@ public class DynamicPartitionPruningProgramTest extends TableTestBase {
}
@Test
- public void testDimSideReuseAfterProjectionPushdown() {
+ void testDimSideReuseAfterProjectionPushdown() {
util.tableEnv()
.executeSql(
"CREATE TABLE fact_part2 (\n"
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/optimize/program/FlinkRuntimeFilterProgramTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/optimize/program/FlinkRuntimeFilterProgramTest.java
index 217ca5577c3..8d01b4cace0 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/optimize/program/FlinkRuntimeFilterProgramTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/optimize/program/FlinkRuntimeFilterProgramTest.java
@@ -31,8 +31,8 @@ import org.apache.flink.table.planner.factories.TestValuesCatalog;
import org.apache.flink.table.planner.utils.BatchTableTestUtil;
import org.apache.flink.table.planner.utils.TableTestBase;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
import java.util.Collections;
import java.util.HashMap;
@@ -48,8 +48,8 @@ public class FlinkRuntimeFilterProgramTest extends TableTestBase {
private final TestValuesCatalog catalog =
new TestValuesCatalog("testCatalog", "test_database", true);
- @Before
- public void setup() {
+ @BeforeEach
+ void setup() {
catalog.open();
util.tableEnv().registerCatalog("testCatalog", catalog);
util.tableEnv().useCatalog("testCatalog");
@@ -91,7 +91,7 @@ public class FlinkRuntimeFilterProgramTest extends TableTestBase {
}
@Test
- public void testSimpleInnerJoin() throws Exception {
+ void testSimpleInnerJoin() throws Exception {
// runtime filter will succeed
setupSuitableTableStatistics();
String query = "select * from fact, dim where fact.amount = dim.amount and dim.price < 500";
@@ -99,7 +99,7 @@ public class FlinkRuntimeFilterProgramTest extends TableTestBase {
}
@Test
- public void testSemiJoin() throws Exception {
+ void testSemiJoin() throws Exception {
// runtime filter will succeed
setupSuitableTableStatistics();
util.getTableEnv()
@@ -111,7 +111,7 @@ public class FlinkRuntimeFilterProgramTest extends TableTestBase {
}
@Test
- public void testLeftOuterJoinWithLeftBuild() throws Exception {
+ void testLeftOuterJoinWithLeftBuild() throws Exception {
// runtime filter will succeed
setupSuitableTableStatistics();
String query =
@@ -120,7 +120,7 @@ public class FlinkRuntimeFilterProgramTest extends TableTestBase {
}
@Test
- public void testLeftOuterJoinWithRightBuild() throws Exception {
+ void testLeftOuterJoinWithRightBuild() throws Exception {
// runtime filter will not succeed
setupSuitableTableStatistics();
String query =
@@ -129,7 +129,7 @@ public class FlinkRuntimeFilterProgramTest extends TableTestBase {
}
@Test
- public void testFullOuterJoin() throws Exception {
+ void testFullOuterJoin() throws Exception {
// runtime filter will not succeed
setupSuitableTableStatistics();
String query =
@@ -138,7 +138,7 @@ public class FlinkRuntimeFilterProgramTest extends TableTestBase {
}
@Test
- public void testAntiJoin() throws Exception {
+ void testAntiJoin() throws Exception {
// runtime filter will not succeed
setupSuitableTableStatistics();
String query =
@@ -147,7 +147,7 @@ public class FlinkRuntimeFilterProgramTest extends TableTestBase {
}
@Test
- public void testNestedLoopJoin() throws Exception {
+ void testNestedLoopJoin() throws Exception {
// runtime filter will not succeed
setupTableRowCount("dim", 1L);
setupTableRowCount("fact", SUITABLE_FACT_ROW_COUNT);
@@ -156,7 +156,7 @@ public class FlinkRuntimeFilterProgramTest extends TableTestBase {
}
@Test
- public void testProbeSideIsTooSmall() throws Exception {
+ void testProbeSideIsTooSmall() throws Exception {
// runtime filter will not succeed
setupTableRowCount("dim", SUITABLE_DIM_ROW_COUNT);
// fact is 7.5 GB < 10 GB
@@ -166,7 +166,7 @@ public class FlinkRuntimeFilterProgramTest extends TableTestBase {
}
@Test
- public void testBuildSideIsTooLarge() throws Exception {
+ void testBuildSideIsTooLarge() throws Exception {
// runtime filter will not succeed
// dim is 48 MB > 6MB
setupTableRowCount("dim", 1024L * 1024L);
@@ -176,7 +176,7 @@ public class FlinkRuntimeFilterProgramTest extends TableTestBase {
}
@Test
- public void testFilterRatioIsTooSmall() throws Exception {
+ void testFilterRatioIsTooSmall() throws Exception {
// runtime filter will not succeed
setupSuitableTableStatistics();
setupTableColumnNdv("dim", "amount", 768L);
@@ -186,7 +186,7 @@ public class FlinkRuntimeFilterProgramTest extends TableTestBase {
}
@Test
- public void testBuildSideIsJoinWithoutExchange() throws Exception {
+ void testBuildSideIsJoinWithoutExchange() throws Exception {
// runtime filter will succeed
setupSuitableTableStatistics();
util.tableEnv()
@@ -209,7 +209,7 @@ public class FlinkRuntimeFilterProgramTest extends TableTestBase {
}
@Test
- public void testBuildSideIsJoinWithTwoAggInputs() throws Exception {
+ void testBuildSideIsJoinWithTwoAggInputs() throws Exception {
// runtime filter will succeed
setupSuitableTableStatistics();
util.tableEnv()
@@ -241,7 +241,7 @@ public class FlinkRuntimeFilterProgramTest extends TableTestBase {
}
@Test
- public void testBuildSideIsLeftJoinWithoutExchange() throws Exception {
+ void testBuildSideIsLeftJoinWithoutExchange() throws Exception {
// runtime filter will not succeed, because the original build side is left join(without
// exchange), so we can only push builder to it's left input, but the left input is too
// large to as builder.
@@ -267,7 +267,7 @@ public class FlinkRuntimeFilterProgramTest extends TableTestBase {
}
@Test
- public void testBuildSideIsAggWithoutExchange() throws Exception {
+ void testBuildSideIsAggWithoutExchange() throws Exception {
// runtime filter will succeed
// The following two config are used to let the build side is a direct Agg (without
// Exchange)
@@ -288,7 +288,7 @@ public class FlinkRuntimeFilterProgramTest extends TableTestBase {
}
@Test
- public void testBuildSideIsCalcWithoutExchange() throws Exception {
+ void testBuildSideIsCalcWithoutExchange() throws Exception {
// runtime filter will succeed
// The following two config are used to let the build side is a direct Calc (without
// Exchange)
@@ -308,7 +308,7 @@ public class FlinkRuntimeFilterProgramTest extends TableTestBase {
}
@Test
- public void testCannotInjectMoreThanOneRuntimeFilterInSamePlace() throws Exception {
+ void testCannotInjectMoreThanOneRuntimeFilterInSamePlace() throws Exception {
setupSuitableTableStatistics();
util.tableEnv()
.executeSql(
@@ -330,7 +330,7 @@ public class FlinkRuntimeFilterProgramTest extends TableTestBase {
}
@Test
- public void testPushDownProbeSideWithCalc() throws Exception {
+ void testPushDownProbeSideWithCalc() throws Exception {
setupSuitableTableStatistics();
String query =
"select * from dim, fact where dim.amount = fact.amount and dim.price < 500 and fact.price > 600";
@@ -338,7 +338,7 @@ public class FlinkRuntimeFilterProgramTest extends TableTestBase {
}
@Test
- public void testCannotPushDownProbeSideWithCalc() throws Exception {
+ void testCannotPushDownProbeSideWithCalc() throws Exception {
setupSuitableTableStatistics();
String query =
"select * from dim inner join (select fact_date_sk, RAND(10) as random from fact) "
@@ -347,7 +347,7 @@ public class FlinkRuntimeFilterProgramTest extends TableTestBase {
}
@Test
- public void testPushDownProbeSideToAllInputsOfJoin() throws Exception {
+ void testPushDownProbeSideToAllInputsOfJoin() throws Exception {
setupSuitableTableStatistics();
util.tableEnv()
.executeSql(
@@ -369,7 +369,7 @@ public class FlinkRuntimeFilterProgramTest extends TableTestBase {
}
@Test
- public void testPushDownProbeSideToOneInputOfJoin() throws Exception {
+ void testPushDownProbeSideToOneInputOfJoin() throws Exception {
setupSuitableTableStatistics();
util.tableEnv()
.executeSql(
@@ -391,7 +391,7 @@ public class FlinkRuntimeFilterProgramTest extends TableTestBase {
}
@Test
- public void testCannotPushDownProbeSideWithJoin() throws Exception {
+ void testCannotPushDownProbeSideWithJoin() throws Exception {
setupSuitableTableStatistics();
util.tableEnv()
.executeSql(
@@ -413,7 +413,7 @@ public class FlinkRuntimeFilterProgramTest extends TableTestBase {
}
@Test
- public void testPushDownProbeSideWithAgg() throws Exception {
+ void testPushDownProbeSideWithAgg() throws Exception {
setupTableRowCount("dim", SUITABLE_DIM_ROW_COUNT);
setupTableRowCount("fact", 1024L * SUITABLE_FACT_ROW_COUNT);
util.getTableEnv()
@@ -427,7 +427,7 @@ public class FlinkRuntimeFilterProgramTest extends TableTestBase {
}
@Test
- public void testCannotPushDownProbeSideWithAgg() throws Exception {
+ void testCannotPushDownProbeSideWithAgg() throws Exception {
setupTableRowCount("dim", SUITABLE_DIM_ROW_COUNT);
setupTableRowCount("fact", 1024L * SUITABLE_FACT_ROW_COUNT);
util.getTableEnv()
@@ -441,7 +441,7 @@ public class FlinkRuntimeFilterProgramTest extends TableTestBase {
}
@Test
- public void testPushDownProbeSideWithUnion() throws Exception {
+ void testPushDownProbeSideWithUnion() throws Exception {
// probe side will be pushed down to union.
setupSuitableTableStatistics();
String query =
@@ -453,7 +453,7 @@ public class FlinkRuntimeFilterProgramTest extends TableTestBase {
}
@Test
- public void testDoesNotApplyRuntimeFilterAndDPPOnSameKey() throws Exception {
+ void testDoesNotApplyRuntimeFilterAndDPPOnSameKey() throws Exception {
// runtime filter will not success, because already applied DPP on the key
setupTableRowCount("dim", SUITABLE_DIM_ROW_COUNT);
createPartitionedFactTable(SUITABLE_FACT_ROW_COUNT);
@@ -463,7 +463,7 @@ public class FlinkRuntimeFilterProgramTest extends TableTestBase {
}
@Test
- public void testProbeSideIsTableSourceWithoutExchange() throws Exception {
+ void testProbeSideIsTableSourceWithoutExchange() throws Exception {
// runtime filter will not succeed, because probe side is a direct table source
setupSuitableTableStatistics();
String query = "select * from fact, dim where fact.amount = dim.amount and dim.price = 500";
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/rules/logical/FlinkFilterJoinRuleTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/rules/logical/FlinkFilterJoinRuleTest.java
index 4ec5f93f6cc..7eb96ba0193 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/rules/logical/FlinkFilterJoinRuleTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/rules/logical/FlinkFilterJoinRuleTest.java
@@ -31,16 +31,16 @@ import org.apache.flink.table.planner.utils.TableTestBase;
import org.apache.calcite.plan.hep.HepMatchOrder;
import org.apache.calcite.rel.rules.CoreRules;
import org.apache.calcite.tools.RuleSets;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
/** Test for {@link FlinkFilterJoinRule}. */
-public class FlinkFilterJoinRuleTest extends TableTestBase {
+class FlinkFilterJoinRuleTest extends TableTestBase {
private BatchTableTestUtil util;
- @Before
- public void setup() {
+ @BeforeEach
+ void setup() {
util = batchTestUtil(TableConfig.getDefault());
util.buildBatchProgram(FlinkBatchProgram.DEFAULT_REWRITE());
CalciteConfig calciteConfig =
@@ -102,256 +102,256 @@ public class FlinkFilterJoinRuleTest extends TableTestBase {
}
@Test
- public void testFilterPushDownLeftSemi1() {
+ void testFilterPushDownLeftSemi1() {
util.verifyRelPlan(
"SELECT * FROM (SELECT * FROM leftT WHERE a IN (SELECT c FROM rightT)) T WHERE T.b > 2");
}
@Test
- public void testFilterPushDownLeftSemi2() {
+ void testFilterPushDownLeftSemi2() {
util.verifyRelPlan(
"SELECT * FROM (SELECT * FROM leftT WHERE EXISTS (SELECT * FROM rightT)) T WHERE T.b > 2");
}
@Test
- public void testFilterPushDownLeftSemi3() {
+ void testFilterPushDownLeftSemi3() {
util.verifyRelPlan(
"SELECT * FROM (SELECT * FROM leftT WHERE EXISTS (SELECT * FROM rightT WHERE a = c)) T WHERE T.b > 2");
}
@Test
- public void testJoinConditionPushDownLeftSemi1() {
+ void testJoinConditionPushDownLeftSemi1() {
util.verifyRelPlan("SELECT * FROM leftT WHERE a IN (SELECT c FROM rightT WHERE b > 2)");
}
@Test
- public void testJoinConditionPushDownLeftSemi2() {
+ void testJoinConditionPushDownLeftSemi2() {
util.verifyRelPlan("SELECT * FROM leftT WHERE EXISTS (SELECT * FROM rightT WHERE b > 2)");
}
@Test
- public void testJoinConditionPushDownLeftSemi3() {
+ void testJoinConditionPushDownLeftSemi3() {
util.verifyRelPlan(
"SELECT * FROM leftT WHERE EXISTS (SELECT * FROM rightT WHERE a = c AND b > 2)");
}
@Test
- public void testFilterPushDownLeftAnti1() {
+ void testFilterPushDownLeftAnti1() {
util.verifyRelPlan(
"SELECT * FROM (SELECT * FROM leftT WHERE a NOT IN (SELECT c FROM rightT WHERE c < 3)) T WHERE T.b > 2");
}
@Test
- public void testFilterPushDownLeftAnti2() {
+ void testFilterPushDownLeftAnti2() {
util.verifyRelPlan(
"SELECT * FROM (SELECT * FROM leftT WHERE NOT EXISTS (SELECT * FROM rightT where c > 10)) T WHERE T.b > 2");
}
@Test
- public void testFilterPushDownLeftAnti3() {
+ void testFilterPushDownLeftAnti3() {
util.verifyRelPlan(
"SELECT * FROM (SELECT * FROM leftT WHERE a NOT IN (SELECT c FROM rightT WHERE b = d AND c < 3)) T WHERE T.b > 2");
}
@Test
- public void testFilterPushDownLeftAnti4() {
+ void testFilterPushDownLeftAnti4() {
util.verifyRelPlan(
"SELECT * FROM (SELECT * FROM leftT WHERE NOT EXISTS (SELECT * FROM rightT WHERE a = c)) T WHERE T.b > 2");
}
@Test
- public void testJoinConditionPushDownLeftAnti1() {
+ void testJoinConditionPushDownLeftAnti1() {
util.verifyRelPlan("SELECT * FROM leftT WHERE a NOT IN (SELECT c FROM rightT WHERE b > 2)");
}
@Test
- public void testJoinConditionPushDownLeftAnti2() {
+ void testJoinConditionPushDownLeftAnti2() {
util.verifyRelPlan(
"SELECT * FROM leftT WHERE NOT EXISTS (SELECT * FROM rightT WHERE b > 2)");
}
@Test
- public void testJoinConditionPushDownLeftAnti3() {
+ void testJoinConditionPushDownLeftAnti3() {
util.verifyRelPlan(
"SELECT * FROM leftT WHERE a NOT IN (SELECT c FROM rightT WHERE b = d AND b > 1)");
}
@Test
- public void testJoinConditionPushDownLeftAnti4() {
+ void testJoinConditionPushDownLeftAnti4() {
util.verifyRelPlan(
"SELECT * FROM leftT WHERE NOT EXISTS (SELECT * FROM rightT WHERE a = c AND b > 2)");
}
@Test
- public void testInnerJoinWithAllFilterFromBothSide() {
+ void testInnerJoinWithAllFilterFromBothSide() {
// can not be pushed down
util.verifyRelPlan("SELECT * FROM MyTable1 JOIN MyTable2 ON a1 = a2 WHERE a1 = a2 + 2");
}
@Test
- public void testInnerJoinWithAllFilterInONClause() {
+ void testInnerJoinWithAllFilterInONClause() {
util.verifyRelPlan(
"SELECT * FROM MyTable1 JOIN MyTable2 ON a1 = a2 AND b1 = b2 AND a1 = 2 AND b2 > 10");
}
@Test
- public void testInnerJoinWithSomeFiltersFromLeftSide() {
+ void testInnerJoinWithSomeFiltersFromLeftSide() {
util.verifyRelPlan("SELECT * FROM MyTable1 JOIN MyTable2 ON a1 = a2 WHERE a1 = 2");
}
@Test
- public void testInnerJoinWithSomeFiltersFromRightSide() {
+ void testInnerJoinWithSomeFiltersFromRightSide() {
util.verifyRelPlan("SELECT * FROM MyTable1 JOIN MyTable2 ON a1 = a2 WHERE a2 = 2");
}
@Test
- public void testInnerJoinWithSomeFiltersFromLeftRightSide() {
+ void testInnerJoinWithSomeFiltersFromLeftRightSide() {
util.verifyRelPlan(
"SELECT * FROM MyTable1 JOIN MyTable2 ON a1 = a2 AND b1 = b2 AND c1 = c2 WHERE a2 = 2 AND b2 > 10 AND c1 IS NOT NULL");
}
@Test
- public void testInnerJoinWithAllFiltersFromWhere() {
+ void testInnerJoinWithAllFiltersFromWhere() {
util.verifyRelPlan(
"SELECT * FROM MyTable2, MyTable1 WHERE b1 = b2 AND c1 = c2 AND a2 = 2 AND b2 > 10 AND COALESCE(c1, c2) <> '' ");
}
@Test
- public void testInnerJoinWithNullFilter() {
+ void testInnerJoinWithNullFilter() {
util.verifyRelPlan(
"SELECT * FROM MyTable1 INNER JOIN MyTable2 ON a1 = a2 WHERE a2 IS NULL");
}
@Test
- public void testInnerJoinWithNullFilter2() {
+ void testInnerJoinWithNullFilter2() {
util.verifyRelPlan(
"SELECT * FROM MyTable1 INNER JOIN MyTable2 ON a1 = a2 WHERE a2 IS NULL AND a1 < 10");
}
@Test
- public void testInnerJoinWithFilter1() {
+ void testInnerJoinWithFilter1() {
util.verifyRelPlan("SELECT * FROM MyTable1 INNER JOIN MyTable2 ON a1 = a2 WHERE a2 < 1");
}
@Test
- public void testInnerJoinWithFilter2() {
+ void testInnerJoinWithFilter2() {
util.verifyRelPlan("SELECT * FROM MyTable1 INNER JOIN MyTable2 ON a1 = a2 WHERE a2 <> 1");
}
@Test
- public void testInnerJoinWithFilter3() {
+ void testInnerJoinWithFilter3() {
util.verifyRelPlan("SELECT * FROM MyTable1 INNER JOIN MyTable2 ON a1 = a2 WHERE a2 > 1");
}
@Test
- public void testInnerJoinWithFilter4() {
+ void testInnerJoinWithFilter4() {
util.verifyRelPlan("SELECT * FROM MyTable1 INNER JOIN MyTable2 ON a1 = a2 WHERE a2 >= 1");
}
@Test
- public void testInnerJoinWithFilter5() {
+ void testInnerJoinWithFilter5() {
util.verifyRelPlan("SELECT * FROM MyTable1 INNER JOIN MyTable2 ON a1 = a2 WHERE a2 <= 1");
}
@Test
- public void testInnerJoinWithFilter6() {
+ void testInnerJoinWithFilter6() {
util.verifyRelPlan("SELECT * FROM MyTable1 INNER JOIN MyTable2 ON a1 = a2 WHERE a2 = null");
}
@Test
- public void testLeftJoinWithSomeFiltersFromLeftSide() {
+ void testLeftJoinWithSomeFiltersFromLeftSide() {
util.verifyRelPlan("SELECT * FROM MyTable1 LEFT JOIN MyTable2 ON a1 = a2 WHERE a1 = 2");
}
@Test
- public void testLeftJoinWithAllFilterInONClause() {
+ void testLeftJoinWithAllFilterInONClause() {
util.verifyRelPlan("SELECT * FROM MyTable1 LEFT JOIN MyTable2 ON a1 = a2 AND a2 = 2");
}
@Test
- public void testLeftJoinWithSomeFiltersFromLeftRightSide() {
+ void testLeftJoinWithSomeFiltersFromLeftRightSide() {
// will be converted to inner join
util.verifyRelPlan(
"SELECT * FROM MyTable1 LEFT JOIN MyTable2 ON a1 = a2 AND b1 = b2 AND c1 = c2 WHERE a2 = 2 AND b2 > 10 AND c1 IS NOT NULL");
}
@Test
- public void testLeftJoinWithAllFiltersFromWhere() {
+ void testLeftJoinWithAllFiltersFromWhere() {
// will be converted to inner join
util.verifyRelPlan(
"SELECT * FROM MyTable1 LEFT JOIN MyTable2 ON true WHERE b1 = b2 AND c1 = c2 AND a2 = 2 AND b2 > 10 AND COALESCE(c1, c2) <> '' ");
}
@Test
- public void testLeftJoinWithNullFilterInRightSide() {
+ void testLeftJoinWithNullFilterInRightSide() {
// Even if there is a filter 'a2 IS NULL', the 'a1 IS NULL' cannot be generated for left
// join and this filter cannot be pushed down to both MyTable1 and MyTable2.
util.verifyRelPlan("SELECT * FROM MyTable1 LEFT JOIN MyTable2 ON a1 = a2 WHERE a2 IS NULL");
}
@Test
- public void testLeftJoinWithNullFilterInRightSide2() {
+ void testLeftJoinWithNullFilterInRightSide2() {
// 'a2 IS NULL' cannot infer that 'a1 IS NULL'.
util.verifyRelPlan(
"SELECT * FROM MyTable1 LEFT JOIN MyTable2 ON a1 = a2 WHERE a2 IS NULL AND a1 < 10");
}
@Test
- public void testLeftJoinWithFilter1() {
+ void testLeftJoinWithFilter1() {
util.verifyRelPlan("SELECT * FROM MyTable1 LEFT JOIN MyTable2 ON a1 = a2 WHERE a2 < 1");
}
@Test
- public void testLeftJoinWithFilter2() {
+ void testLeftJoinWithFilter2() {
util.verifyRelPlan("SELECT * FROM MyTable1 LEFT JOIN MyTable2 ON a1 = a2 WHERE a2 <> 1");
}
@Test
- public void testLeftJoinWithFilter3() {
+ void testLeftJoinWithFilter3() {
util.verifyRelPlan("SELECT * FROM MyTable1 LEFT JOIN MyTable2 ON a1 = a2 WHERE a2 > 1");
}
@Test
- public void testLeftJoinWithFilter4() {
+ void testLeftJoinWithFilter4() {
util.verifyRelPlan("SELECT * FROM MyTable1 LEFT JOIN MyTable2 ON a1 = a2 WHERE a2 >= 1");
}
@Test
- public void testLeftJoinWithFilter5() {
+ void testLeftJoinWithFilter5() {
util.verifyRelPlan("SELECT * FROM MyTable1 LEFT JOIN MyTable2 ON a1 = a2 WHERE a2 <= 1");
}
@Test
- public void testLeftJoinWithFilter6() {
+ void testLeftJoinWithFilter6() {
util.verifyRelPlan("SELECT * FROM MyTable1 LEFT JOIN MyTable2 ON a1 = a2 WHERE a2 = null");
}
@Test
- public void testRightJoinWithAllFilterInONClause() {
+ void testRightJoinWithAllFilterInONClause() {
util.verifyRelPlan("SELECT * FROM MyTable1 RIGHT JOIN MyTable2 ON a1 = a2 AND a1 = 2");
}
@Test
- public void testRightJoinWithSomeFiltersFromRightSide() {
+ void testRightJoinWithSomeFiltersFromRightSide() {
util.verifyRelPlan("SELECT * FROM MyTable1 RIGHT JOIN MyTable2 ON a1 = a2 WHERE a2 = 2");
}
@Test
- public void testRightJoinWithSomeFiltersFromLeftRightSide() {
+ void testRightJoinWithSomeFiltersFromLeftRightSide() {
// will be converted to inner join
util.verifyRelPlan(
"SELECT * FROM MyTable1 RIGHT JOIN MyTable2 ON a1 = a2 AND b1 = b2 AND c1 = c2 WHERE a2 = 2 AND b2 > 10 AND c1 IS NOT NULL");
}
@Test
- public void testRightJoinWithAllFiltersFromWhere() {
+ void testRightJoinWithAllFiltersFromWhere() {
// will be converted to inner join
util.verifyRelPlan(
"SELECT * FROM MyTable1 RIGHT JOIN MyTable2 ON true WHERE b1 = b2 AND c1 = c2 AND a2 = 2 AND b2 > 10 AND COALESCE(c1, c2) <> '' ");
}
@Test
- public void testRightJoinWithNullFilterInLeftSide() {
+ void testRightJoinWithNullFilterInLeftSide() {
// Even if there is a filter 'a1 IS NULL', the 'a2 IS NULL' cannot be generated for right
// join and this filter cannot be pushed down to both MyTable1 and MyTable2.
util.verifyRelPlan(
@@ -359,7 +359,7 @@ public class FlinkFilterJoinRuleTest extends TableTestBase {
}
@Test
- public void testRightJoinWithNullFilterInRightSide2() {
+ void testRightJoinWithNullFilterInRightSide2() {
// 'a1 IS NULL' cannot infer that 'a2 IS NULL'. However, 'a2 < 10' can infer that 'a1 < 10',
// and both of them can be pushed down.
util.verifyRelPlan(
@@ -367,47 +367,47 @@ public class FlinkFilterJoinRuleTest extends TableTestBase {
}
@Test
- public void testFullJoinWithAllFilterInONClause() {
+ void testFullJoinWithAllFilterInONClause() {
util.verifyRelPlan("SELECT * FROM MyTable1 FULL JOIN MyTable2 ON a1 = a2 AND a1 = 2");
}
@Test
- public void testFullJoinWithSomeFiltersFromLeftSide() {
+ void testFullJoinWithSomeFiltersFromLeftSide() {
// will be converted to inner join
util.verifyRelPlan(
"SELECT * FROM MyTable1 FULL JOIN MyTable2 ON a1 = a2 AND b1 = b2 WHERE a1 = 2");
}
@Test
- public void testFullJoinWithSomeFiltersFromRightSide() {
+ void testFullJoinWithSomeFiltersFromRightSide() {
// will be converted to inner join
util.verifyRelPlan(
"SELECT * FROM MyTable1 FULL JOIN MyTable2 ON a1 = a2 AND b1 = b2 WHERE a2 = 2");
}
@Test
- public void testFullJoinWithSomeFiltersFromLeftRightSide() {
+ void testFullJoinWithSomeFiltersFromLeftRightSide() {
// will be converted to inner join
util.verifyRelPlan(
"SELECT * FROM MyTable1 FULL JOIN MyTable2 ON a1 = a2 AND b1 = b2 AND c1 = c2 WHERE a2 = 2 AND b2 > 10 AND c1 IS NOT NULL");
}
@Test
- public void testFullJoinWithAllFiltersFromWhere() {
+ void testFullJoinWithAllFiltersFromWhere() {
// will be converted to inner join
util.verifyRelPlan(
"SELECT * FROM MyTable2, MyTable1 WHERE b1 = b2 AND c1 = c2 AND a2 = 2 AND b2 > 10 AND COALESCE(c1, c2) <> '' ");
}
@Test
- public void testSemiJoin() {
+ void testSemiJoin() {
// TODO can not be pushed down now, support it later
util.verifyRelPlan(
"SELECT * FROM MyTable1 WHERE (a1, b1, c1) IN (SELECT a2, b2, c2 FROM MyTable2 WHERE a2 = 2 AND b2 > 10) AND c1 IS NOT NULL");
}
@Test
- public void testAntiJoin() {
+ void testAntiJoin() {
// can not be pushed down
util.verifyRelPlan(
"SELECT * FROM MyTable1 WHERE (a1, b1, c1) NOT IN (select a2, b2, c2 FROM MyTable2 WHERE a2 = 2 AND b2 > 10) AND c1 IS NOT NULL");
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/rules/logical/ProjectSnapshotTransposeRuleTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/rules/logical/ProjectSnapshotTransposeRuleTest.java
index 7850bda83bd..7d0c3374e63 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/rules/logical/ProjectSnapshotTransposeRuleTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/rules/logical/ProjectSnapshotTransposeRuleTest.java
@@ -26,33 +26,35 @@ import org.apache.flink.table.planner.utils.BatchTableTestUtil;
import org.apache.flink.table.planner.utils.StreamTableTestUtil;
import org.apache.flink.table.planner.utils.TableTestBase;
import org.apache.flink.table.planner.utils.TableTestUtil;
+import org.apache.flink.testutils.junit.extensions.parameterized.Parameter;
+import org.apache.flink.testutils.junit.extensions.parameterized.ParameterizedTestExtension;
+import org.apache.flink.testutils.junit.extensions.parameterized.Parameters;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.TestTemplate;
+import org.junit.jupiter.api.extension.ExtendWith;
import java.util.Arrays;
import java.util.Collection;
/** Test rule {@link ProjectSnapshotTransposeRule}. */
-@RunWith(Parameterized.class)
-public class ProjectSnapshotTransposeRuleTest extends TableTestBase {
+@ExtendWith(ParameterizedTestExtension.class)
+class ProjectSnapshotTransposeRuleTest extends TableTestBase {
private static final String STREAM = "stream";
private static final String BATCH = "batch";
- @Parameterized.Parameter public String mode;
+ @Parameter private String mode;
- @Parameterized.Parameters(name = "mode = {0}")
- public static Collection<String> parameters() {
+ @Parameters(name = "mode = {0}")
+ private static Collection<String> parameters() {
return Arrays.asList(STREAM, BATCH);
}
private TableTestUtil util;
- @Before
- public void setup() {
+ @BeforeEach
+ void setup() {
boolean isStreaming = STREAM.equals(mode);
if (isStreaming) {
util = streamTestUtil(TableConfig.getDefault());
@@ -90,8 +92,8 @@ public class ProjectSnapshotTransposeRuleTest extends TableTestBase {
tEnv.executeSql(lookup);
}
- @Test
- public void testJoinTemporalTableWithProjectionPushDown() {
+ @TestTemplate
+ void testJoinTemporalTableWithProjectionPushDown() {
String sql =
"SELECT T.*, D.id\n"
+ "FROM MyTable AS T\n"
@@ -101,8 +103,8 @@ public class ProjectSnapshotTransposeRuleTest extends TableTestBase {
util.verifyRelPlan(sql);
}
- @Test
- public void testJoinTemporalTableNotProjectable() {
+ @TestTemplate
+ void testJoinTemporalTableNotProjectable() {
String sql =
"SELECT T.*, D.*\n"
+ "FROM MyTable AS T\n"
@@ -112,8 +114,8 @@ public class ProjectSnapshotTransposeRuleTest extends TableTestBase {
util.verifyRelPlan(sql);
}
- @Test
- public void testJoinTemporalTableWithReorderedProject() {
+ @TestTemplate
+ void testJoinTemporalTableWithReorderedProject() {
String sql =
"SELECT T.*, D.age, D.name, D.id\n"
+ "FROM MyTable AS T\n"
@@ -123,8 +125,8 @@ public class ProjectSnapshotTransposeRuleTest extends TableTestBase {
util.verifyRelPlan(sql);
}
- @Test
- public void testJoinTemporalTableWithProjectAndFilter() {
+ @TestTemplate
+ void testJoinTemporalTableWithProjectAndFilter() {
String sql =
"SELECT T.*, D.id\n"
+ "FROM MyTable AS T\n"
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/rules/logical/ProjectWatermarkAssignerTransposeRuleTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/rules/logical/ProjectWatermarkAssignerTransposeRuleTest.java
index 4da8871104e..d8968d95ed4 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/rules/logical/ProjectWatermarkAssignerTransposeRuleTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/rules/logical/ProjectWatermarkAssignerTransposeRuleTest.java
@@ -29,15 +29,15 @@ import org.apache.flink.table.planner.utils.TableTestBase;
import org.apache.calcite.plan.hep.HepMatchOrder;
import org.apache.calcite.tools.RuleSets;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
/** Test for {@link ProjectWatermarkAssignerTransposeRule}. */
-public class ProjectWatermarkAssignerTransposeRuleTest extends TableTestBase {
+class ProjectWatermarkAssignerTransposeRuleTest extends TableTestBase {
private final StreamTableTestUtil util = streamTestUtil(TableConfig.getDefault());
- @Before
- public void setup() {
+ @BeforeEach
+ void setup() {
FlinkChainedProgram<StreamOptimizeContext> program = new FlinkChainedProgram<>();
program.addLast(
@@ -106,57 +106,57 @@ public class ProjectWatermarkAssignerTransposeRuleTest extends TableTestBase {
}
@Test
- public void simpleTranspose() {
+ void simpleTranspose() {
util.verifyRelPlan("SELECT a, c FROM SimpleTable");
}
@Test
- public void transposeWithReorder() {
+ void transposeWithReorder() {
util.verifyRelPlan("SELECT b, a FROM SimpleTable");
}
@Test
- public void transposeWithNestedField() {
+ void transposeWithNestedField() {
util.verifyRelPlan("SELECT b, d.d1, d.d2 FROM SimpleTable");
}
@Test
- public void complicatedTranspose() {
+ void complicatedTranspose() {
util.verifyRelPlan("SELECT d.d1, d.d2 + b FROM SimpleTable");
}
@Test
- public void transposeExcludeRowTime() {
+ void transposeExcludeRowTime() {
util.verifyRelPlan("SELECT SECOND(c) FROM SimpleTable");
}
@Test
- public void transposeWithIncludeComputedRowTime() {
+ void transposeWithIncludeComputedRowTime() {
util.verifyRelPlan("SELECT a, b, d FROM VirtualTable");
}
@Test
- public void transposeWithExcludeComputedRowTime() {
+ void transposeWithExcludeComputedRowTime() {
util.verifyRelPlan("SELECT a, b FROM VirtualTable");
}
@Test
- public void transposeWithExcludeComputedRowTime2() {
+ void transposeWithExcludeComputedRowTime2() {
util.verifyRelPlan("SELECT a, b, SECOND(d) FROM VirtualTable");
}
@Test
- public void transposeWithExcludeComputedRowTime3() {
+ void transposeWithExcludeComputedRowTime3() {
util.verifyRelPlan("SELECT a, SECOND(d) FROM NestedTable");
}
@Test
- public void transposeWithDuplicateColumns() {
+ void transposeWithDuplicateColumns() {
util.verifyRelPlan("SELECT a, b, b as e FROM VirtualTable");
}
@Test
- public void transposeWithWatermarkWithMultipleInput() {
+ void transposeWithWatermarkWithMultipleInput() {
util.verifyRelPlan("SELECT a FROM UdfTable");
}
}
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/rules/logical/PushFilterInCalcIntoTableSourceRuleTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/rules/logical/PushFilterInCalcIntoTableSourceRuleTest.java
index 98754431376..1d929b751ae 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/rules/logical/PushFilterInCalcIntoTableSourceRuleTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/rules/logical/PushFilterInCalcIntoTableSourceRuleTest.java
@@ -34,15 +34,14 @@ import org.apache.calcite.plan.Convention;
import org.apache.calcite.plan.hep.HepMatchOrder;
import org.apache.calcite.rel.rules.CoreRules;
import org.apache.calcite.tools.RuleSets;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
/** Test for {@link PushFilterInCalcIntoTableSourceRuleTest}. */
-public class PushFilterInCalcIntoTableSourceRuleTest
- extends PushFilterIntoTableSourceScanRuleTestBase {
+class PushFilterInCalcIntoTableSourceRuleTest extends PushFilterIntoTableSourceScanRuleTestBase {
- @Before
- public void setup() {
+ @BeforeEach
+ void setup() {
util = streamTestUtil(TableConfig.getDefault());
FlinkChainedProgram<StreamOptimizeContext> program = new FlinkChainedProgram<>();
@@ -112,12 +111,12 @@ public class PushFilterInCalcIntoTableSourceRuleTest
}
@Test
- public void testFailureToPushFilterIntoSourceWithoutWatermarkPushdown() {
+ void testFailureToPushFilterIntoSourceWithoutWatermarkPushdown() {
util.verifyRelPlan("SELECT * FROM WithWatermark WHERE LOWER(name) = 'foo'");
}
@Test
- public void testLowerUpperPushdown() {
+ void testLowerUpperPushdown() {
String ddl =
"CREATE TABLE MTable (\n"
+ " a STRING,\n"
@@ -132,7 +131,7 @@ public class PushFilterInCalcIntoTableSourceRuleTest
}
@Test
- public void testWithInterval() {
+ void testWithInterval() {
String ddl =
"CREATE TABLE MTable (\n"
+ "a TIMESTAMP(3),\n"
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/rules/logical/PushFilterIntoTableSourceScanRuleTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/rules/logical/PushFilterIntoTableSourceScanRuleTest.java
index 47e03c3beb4..f4969a6fe88 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/rules/logical/PushFilterIntoTableSourceScanRuleTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/rules/logical/PushFilterIntoTableSourceScanRuleTest.java
@@ -30,15 +30,14 @@ import org.apache.flink.table.planner.utils.TableConfigUtils;
import org.apache.calcite.plan.hep.HepMatchOrder;
import org.apache.calcite.rel.rules.CoreRules;
import org.apache.calcite.tools.RuleSets;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
/** Test for {@link PushFilterIntoTableSourceScanRule}. */
-public class PushFilterIntoTableSourceScanRuleTest
- extends PushFilterIntoTableSourceScanRuleTestBase {
+class PushFilterIntoTableSourceScanRuleTest extends PushFilterIntoTableSourceScanRuleTestBase {
- @Before
- public void setup() {
+ @BeforeEach
+ void setup() {
util = batchTestUtil(TableConfig.getDefault());
((BatchTableTestUtil) util).buildBatchProgram(FlinkBatchProgram.DEFAULT_REWRITE());
CalciteConfig calciteConfig =
@@ -122,7 +121,7 @@ public class PushFilterIntoTableSourceScanRuleTest
}
@Test
- public void testLowerUpperPushdown() {
+ void testLowerUpperPushdown() {
String ddl =
"CREATE TABLE MTable (\n"
+ " a STRING,\n"
@@ -137,7 +136,7 @@ public class PushFilterIntoTableSourceScanRuleTest
}
@Test
- public void testWithInterval() {
+ void testWithInterval() {
String ddl =
"CREATE TABLE MTable (\n"
+ "a TIMESTAMP(3),\n"
@@ -153,31 +152,31 @@ public class PushFilterIntoTableSourceScanRuleTest
}
@Test
- public void testBasicNestedFilter() {
+ void testBasicNestedFilter() {
util.verifyRelPlan("SELECT * FROM NestedTable WHERE deepNested.nested1.`value` > 2");
}
@Test
- public void testNestedFilterWithDotInTheName() {
+ void testNestedFilterWithDotInTheName() {
util.verifyRelPlan(
"SELECT id FROM NestedTable WHERE `deepNestedWith.`.nested.`.value` > 5");
}
@Test
- public void testNestedFilterWithBacktickInTheName() {
+ void testNestedFilterWithBacktickInTheName() {
util.verifyRelPlan(
"SELECT id FROM NestedTable WHERE `deepNestedWith.`.nested.```name` = 'foo'");
}
@Test
- public void testNestedFilterOnMapKey() {
+ void testNestedFilterOnMapKey() {
util.verifyRelPlan(
"SELECT * FROM NestedItemTable WHERE"
+ " `Result`.`Mid`.data_map['item'].`value` = 3");
}
@Test
- public void testNestedFilterOnArrayField() {
+ void testNestedFilterOnArrayField() {
util.verifyRelPlan(
"SELECT * FROM NestedItemTable WHERE `Result`.`Mid`.data_arr[2].`value` = 3");
}
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/rules/logical/PushFilterIntoTableSourceScanRuleTestBase.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/rules/logical/PushFilterIntoTableSourceScanRuleTestBase.java
index 80629167fd1..435474926b6 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/rules/logical/PushFilterIntoTableSourceScanRuleTestBase.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/rules/logical/PushFilterIntoTableSourceScanRuleTestBase.java
@@ -22,106 +22,106 @@ import org.apache.flink.table.planner.expressions.utils.Func1$;
import org.apache.flink.table.planner.utils.TableTestBase;
import org.apache.flink.table.planner.utils.TableTestUtil;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
/** Test base for testing rule which pushes filter into table source. */
-public abstract class PushFilterIntoTableSourceScanRuleTestBase extends TableTestBase {
+abstract class PushFilterIntoTableSourceScanRuleTestBase extends TableTestBase {
protected TableTestUtil util;
@Test
- public void testCanPushDown() {
+ void testCanPushDown() {
util.verifyRelPlan("SELECT * FROM MyTable WHERE amount > 2");
}
@Test
- public void testCanPushDownWithCastConstant() {
+ void testCanPushDownWithCastConstant() {
util.verifyRelPlan("SELECT * FROM MyTable WHERE amount > cast(1.1 as int)");
}
@Test
- public void testCanPushDownWithVirtualColumn() {
+ void testCanPushDownWithVirtualColumn() {
util.verifyRelPlan("SELECT * FROM VirtualTable WHERE amount > 2");
}
@Test
- public void testCannotPushDown() {
+ void testCannotPushDown() {
// TestFilterableTableSource only accept predicates with `amount`
util.verifyRelPlan("SELECT * FROM MyTable WHERE price > 10");
}
@Test
- public void testCannotPushDownWithCastConstant() {
+ void testCannotPushDownWithCastConstant() {
// TestFilterableTableSource only accept predicates with `amount`
util.verifyRelPlan("SELECT * FROM MyTable WHERE price > cast(10.1 as int)");
}
@Test
- public void testCannotPushDownWithVirtualColumn() {
+ void testCannotPushDownWithVirtualColumn() {
// TestFilterableTableSource only accept predicates with `amount`
util.verifyRelPlan("SELECT * FROM VirtualTable WHERE price > 10");
}
@Test
- public void testPartialPushDown() {
+ void testPartialPushDown() {
util.verifyRelPlan("SELECT * FROM MyTable WHERE amount > 2 AND price > 10");
}
@Test
- public void testPartialPushDownWithVirtualColumn() {
+ void testPartialPushDownWithVirtualColumn() {
util.verifyRelPlan("SELECT * FROM VirtualTable WHERE amount > 2 AND price > 10");
}
@Test
- public void testFullyPushDown() {
+ void testFullyPushDown() {
util.verifyRelPlan("SELECT * FROM MyTable WHERE amount > 2 AND amount < 10");
}
@Test
- public void testFullyPushDownWithVirtualColumn() {
+ void testFullyPushDownWithVirtualColumn() {
util.verifyRelPlan("SELECT * FROM VirtualTable WHERE amount > 2 AND amount < 10");
}
@Test
- public void testPartialPushDown2() {
+ void testPartialPushDown2() {
util.verifyRelPlan("SELECT * FROM MyTable WHERE amount > 2 OR price > 10");
}
@Test
- public void testPartialPushDown2WithVirtualColumn() {
+ void testPartialPushDown2WithVirtualColumn() {
util.verifyRelPlan("SELECT * FROM VirtualTable WHERE amount > 2 OR price > 10");
}
@Test
- public void testCannotPushDown3() {
+ void testCannotPushDown3() {
util.verifyRelPlan("SELECT * FROM MyTable WHERE amount > 2 OR amount < 10");
}
@Test
- public void testCannotPushDown3WithVirtualColumn() {
+ void testCannotPushDown3WithVirtualColumn() {
util.verifyRelPlan("SELECT * FROM VirtualTable WHERE amount > 2 OR amount < 10");
}
@Test
- public void testUnconvertedExpression() {
+ void testUnconvertedExpression() {
util.verifyRelPlan(
"SELECT * FROM MyTable WHERE\n"
+ " amount > 2 AND id < 100 AND CAST(amount AS BIGINT) > 10");
}
@Test
- public void testWithUdf() {
+ void testWithUdf() {
util.addFunction("myUdf", Func1$.MODULE$);
util.verifyRelPlan("SELECT * FROM MyTable WHERE amount > 2 AND myUdf(amount) < 32");
}
@Test
- public void testLowerUpperPushdown() {
+ void testLowerUpperPushdown() {
util.verifyRelPlan("SELECT * FROM MTable WHERE LOWER(a) = 'foo' AND UPPER(b) = 'bar'");
}
@Test
- public void testWithInterval() {
+ void testWithInterval() {
util.verifyRelPlan(
"SELECT * FROM MTable\n"
+ "WHERE TIMESTAMPADD(HOUR, 5, a) >= b\n"
@@ -130,7 +130,7 @@ public abstract class PushFilterIntoTableSourceScanRuleTestBase extends TableTes
}
@Test
- public void testCannotPushDownIn() {
+ void testCannotPushDownIn() {
// this test is to avoid filter push down rules throwing exceptions
// when dealing with IN expressions, this is because Filter in calcite
// requires its condition to be "flat"
@@ -138,7 +138,7 @@ public abstract class PushFilterIntoTableSourceScanRuleTestBase extends TableTes
}
@Test
- public void testWithNullLiteral() {
+ void testWithNullLiteral() {
util.verifyRelPlan(
"WITH MyView AS (SELECT CASE\n"
+ " WHEN amount > 0 THEN name\n"
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/rules/logical/PushLimitIntoTableSourceScanRuleTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/rules/logical/PushLimitIntoTableSourceScanRuleTest.java
index 3fb88c1cbfe..671457a6702 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/rules/logical/PushLimitIntoTableSourceScanRuleTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/rules/logical/PushLimitIntoTableSourceScanRuleTest.java
@@ -30,10 +30,12 @@ import org.apache.flink.table.planner.utils.TableConfigUtils;
import org.apache.calcite.plan.hep.HepMatchOrder;
import org.apache.calcite.rel.rules.CoreRules;
import org.apache.calcite.tools.RuleSets;
+import org.junit.jupiter.api.BeforeEach;
/** Test for {@link PushLimitIntoTableSourceScanRule}. */
-public class PushLimitIntoTableSourceScanRuleTest
- extends PushLimitIntoLegacyTableSourceScanRuleTest {
+class PushLimitIntoTableSourceScanRuleTest extends PushLimitIntoLegacyTableSourceScanRuleTest {
+
+ @BeforeEach
@Override
public void setup() {
util().buildBatchProgram(FlinkBatchProgram.DEFAULT_REWRITE());
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/rules/logical/PushPartitionIntoTableSourceScanRuleTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/rules/logical/PushPartitionIntoTableSourceScanRuleTest.java
index 355374f3d8d..613f6c75adf 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/rules/logical/PushPartitionIntoTableSourceScanRuleTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/rules/logical/PushPartitionIntoTableSourceScanRuleTest.java
@@ -33,7 +33,8 @@ import org.apache.flink.table.planner.utils.TableConfigUtils;
import org.apache.calcite.plan.hep.HepMatchOrder;
import org.apache.calcite.rel.rules.CoreRules;
import org.apache.calcite.tools.RuleSets;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.TestTemplate;
import java.util.Arrays;
import java.util.HashMap;
@@ -41,13 +42,13 @@ import java.util.List;
import java.util.Map;
/** Test for {@link PushPartitionIntoTableSourceScanRule}. */
-public class PushPartitionIntoTableSourceScanRuleTest
+class PushPartitionIntoTableSourceScanRuleTest
extends PushPartitionIntoLegacyTableSourceScanRuleTest {
- public PushPartitionIntoTableSourceScanRuleTest(
- boolean sourceFetchPartitions, boolean useFilter) {
+ PushPartitionIntoTableSourceScanRuleTest(boolean sourceFetchPartitions, boolean useFilter) {
super(sourceFetchPartitions, useFilter);
}
+ @BeforeEach
@Override
public void setup() throws Exception {
util().buildBatchProgram(FlinkBatchProgram.DEFAULT_REWRITE());
@@ -147,8 +148,8 @@ public class PushPartitionIntoTableSourceScanRuleTest
}
}
- @Test
- public void testUnconvertedExpression() {
+ @TestTemplate
+ void testUnconvertedExpression() {
String sql = "select * from MyTable where trim(part1) = 'A' and part2 > 1";
util().verifyRelPlan(sql);
}
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/rules/logical/PushProjectIntoTableSourceScanRuleTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/rules/logical/PushProjectIntoTableSourceScanRuleTest.java
index 9d16e67c7c5..1349cf2cf1c 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/rules/logical/PushProjectIntoTableSourceScanRuleTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/rules/logical/PushProjectIntoTableSourceScanRuleTest.java
@@ -31,14 +31,15 @@ import org.apache.flink.table.planner.plan.optimize.program.FlinkHepRuleSetProgr
import org.apache.flink.table.planner.plan.optimize.program.HEP_RULES_EXECUTION_TYPE;
import org.apache.flink.table.planner.utils.TableConfigUtils;
import org.apache.flink.table.types.DataType;
-import org.apache.flink.testutils.junit.SharedObjects;
+import org.apache.flink.testutils.junit.SharedObjectsExtension;
import org.apache.flink.testutils.junit.SharedReference;
import org.apache.calcite.plan.hep.HepMatchOrder;
import org.apache.calcite.rel.rules.CoreRules;
import org.apache.calcite.tools.RuleSets;
-import org.junit.Rule;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
import java.util.ArrayList;
import java.util.Arrays;
@@ -51,11 +52,12 @@ import static org.apache.flink.table.api.DataTypes.STRING;
import static org.assertj.core.api.Assertions.assertThat;
/** Test for {@link PushProjectIntoTableSourceScanRule}. */
-public class PushProjectIntoTableSourceScanRuleTest
- extends PushProjectIntoLegacyTableSourceScanRuleTest {
+class PushProjectIntoTableSourceScanRuleTest extends PushProjectIntoLegacyTableSourceScanRuleTest {
- @Rule public final SharedObjects sharedObjects = SharedObjects.create();
+ @RegisterExtension
+ private final SharedObjectsExtension sharedObjects = SharedObjectsExtension.create();
+ @BeforeEach
@Override
public void setup() {
util().buildBatchProgram(FlinkBatchProgram.DEFAULT_REWRITE());
@@ -177,7 +179,7 @@ public class PushProjectIntoTableSourceScanRuleTest
}
@Test
- public void testProjectWithMapType() {
+ void testProjectWithMapType() {
String sqlQuery = "SELECT id, testMap['e']\n" + "FROM NestedTable";
util().verifyRelPlan(sqlQuery);
}
@@ -196,7 +198,7 @@ public class PushProjectIntoTableSourceScanRuleTest
}
@Test
- public void testComplicatedNestedProject() {
+ void testComplicatedNestedProject() {
String sqlQuery =
"SELECT id,"
+ " deepNested.nested1.name AS nestedName,\n"
@@ -206,14 +208,14 @@ public class PushProjectIntoTableSourceScanRuleTest
}
@Test
- public void testProjectWithDuplicateMetadataKey() {
+ void testProjectWithDuplicateMetadataKey() {
String sqlQuery = "SELECT id, metadata_3, metadata_1 FROM MetadataTable";
util().verifyRelPlan(sqlQuery);
}
@Test
- public void testNestProjectWithMetadata() {
+ void testNestProjectWithMetadata() {
String sqlQuery =
"SELECT id,"
+ " deepNested.nested1 AS nested1,\n"
@@ -224,7 +226,7 @@ public class PushProjectIntoTableSourceScanRuleTest
}
@Test
- public void testNestProjectWithUpsertSource() {
+ void testNestProjectWithUpsertSource() {
String sqlQuery =
"SELECT id,"
+ " deepNested.nested1 AS nested1,\n"
@@ -235,7 +237,7 @@ public class PushProjectIntoTableSourceScanRuleTest
}
@Test
- public void testNestedProjectFieldAccessWithITEM() {
+ void testNestedProjectFieldAccessWithITEM() {
util().verifyRelPlan(
"SELECT "
+ "`Result`.`Mid`.data_arr[ID].`value`, "
@@ -244,7 +246,7 @@ public class PushProjectIntoTableSourceScanRuleTest
}
@Test
- public void testNestedProjectFieldAccessWithITEMWithConstantIndex() {
+ void testNestedProjectFieldAccessWithITEMWithConstantIndex() {
util().verifyRelPlan(
"SELECT "
+ "`Result`.`Mid`.data_arr[2].`value`, "
@@ -253,7 +255,7 @@ public class PushProjectIntoTableSourceScanRuleTest
}
@Test
- public void testNestedProjectFieldAccessWithITEMContainsTopLevelAccess() {
+ void testNestedProjectFieldAccessWithITEMContainsTopLevelAccess() {
util().verifyRelPlan(
"SELECT "
+ "`Result`.`Mid`.data_arr[2].`value`, "
@@ -264,7 +266,7 @@ public class PushProjectIntoTableSourceScanRuleTest
}
@Test
- public void testProjectFieldAccessWithITEM() {
+ void testProjectFieldAccessWithITEM() {
util().verifyRelPlan(
"SELECT "
+ "`Result`.data_arr[ID].`value`, "
@@ -276,7 +278,7 @@ public class PushProjectIntoTableSourceScanRuleTest
}
@Test
- public void testMetadataProjectionWithoutProjectionPushDownWhenSupported() {
+ void testMetadataProjectionWithoutProjectionPushDownWhenSupported() {
final SharedReference<List<String>> appliedKeys = sharedObjects.add(new ArrayList<>());
final TableDescriptor sourceDescriptor =
TableFactoryHarness.newBuilder()
@@ -290,7 +292,7 @@ public class PushProjectIntoTableSourceScanRuleTest
}
@Test
- public void testMetadataProjectionWithoutProjectionPushDownWhenNotSupported() {
+ void testMetadataProjectionWithoutProjectionPushDownWhenNotSupported() {
final SharedReference<List<String>> appliedKeys = sharedObjects.add(new ArrayList<>());
final TableDescriptor sourceDescriptor =
TableFactoryHarness.newBuilder()
@@ -304,7 +306,7 @@ public class PushProjectIntoTableSourceScanRuleTest
}
@Test
- public void testMetadataProjectionWithoutProjectionPushDownWhenSupportedAndNoneSelected() {
+ void testMetadataProjectionWithoutProjectionPushDownWhenSupportedAndNoneSelected() {
final SharedReference<List<String>> appliedKeys = sharedObjects.add(new ArrayList<>());
final TableDescriptor sourceDescriptor =
TableFactoryHarness.newBuilder()
@@ -320,7 +322,7 @@ public class PushProjectIntoTableSourceScanRuleTest
}
@Test
- public void testMetadataProjectionWithoutProjectionPushDownWhenNotSupportedAndNoneSelected() {
+ void testMetadataProjectionWithoutProjectionPushDownWhenNotSupportedAndNoneSelected() {
final SharedReference<List<String>> appliedKeys = sharedObjects.add(new ArrayList<>());
final TableDescriptor sourceDescriptor =
TableFactoryHarness.newBuilder()
@@ -334,7 +336,7 @@ public class PushProjectIntoTableSourceScanRuleTest
}
@Test
- public void testProjectionIncludingOnlyMetadata() {
+ void testProjectionIncludingOnlyMetadata() {
replaceProgramWithProjectMergeRule();
final AtomicReference<DataType> appliedProjectionDataType = new AtomicReference<>(null);
@@ -374,7 +376,7 @@ public class PushProjectIntoTableSourceScanRuleTest
}
@Test
- public void testProjectionWithMetadataAndPhysicalFields() {
+ void testProjectionWithMetadataAndPhysicalFields() {
replaceProgramWithProjectMergeRule();
final AtomicReference<DataType> appliedProjectionDataType = new AtomicReference<>(null);
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/rules/logical/PushWatermarkIntoTableSourceScanRuleTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/rules/logical/PushWatermarkIntoTableSourceScanRuleTest.java
index 47a21ad0ae9..6fc848f56b4 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/rules/logical/PushWatermarkIntoTableSourceScanRuleTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/rules/logical/PushWatermarkIntoTableSourceScanRuleTest.java
@@ -37,8 +37,8 @@ import org.apache.calcite.plan.Convention;
import org.apache.calcite.plan.hep.HepMatchOrder;
import org.apache.calcite.rel.rules.CoreRules;
import org.apache.calcite.tools.RuleSets;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
import java.time.Duration;
@@ -48,10 +48,10 @@ import static org.apache.flink.table.api.config.ExecutionConfigOptions.TABLE_EXE
* Test rule {@link PushWatermarkIntoTableSourceScanAcrossCalcRule} and {@link
* PushWatermarkIntoTableSourceScanRule}.
*/
-public class PushWatermarkIntoTableSourceScanRuleTest extends TableTestBase {
+class PushWatermarkIntoTableSourceScanRuleTest extends TableTestBase {
private final StreamTableTestUtil util = streamTestUtil(TableConfig.getDefault());
- @Before
+ @BeforeEach
public void setup() {
FlinkChainedProgram<StreamOptimizeContext> program = new FlinkChainedProgram<>();
program.addLast(
@@ -80,7 +80,7 @@ public class PushWatermarkIntoTableSourceScanRuleTest extends TableTestBase {
}
@Test
- public void testSimpleWatermark() {
+ void testSimpleWatermark() {
String ddl =
"CREATE TABLE MyTable("
+ " a INT,\n"
@@ -98,7 +98,7 @@ public class PushWatermarkIntoTableSourceScanRuleTest extends TableTestBase {
}
@Test
- public void testWatermarkOnComputedColumn() {
+ void testWatermarkOnComputedColumn() {
String ddl =
"CREATE TABLE MyTable("
+ " a INT,\n"
@@ -117,7 +117,7 @@ public class PushWatermarkIntoTableSourceScanRuleTest extends TableTestBase {
}
@Test
- public void testWatermarkOnComputedColumnWithQuery() {
+ void testWatermarkOnComputedColumnWithQuery() {
String ddl =
"CREATE TABLE MyTable("
+ " a INT,\n"
@@ -137,7 +137,7 @@ public class PushWatermarkIntoTableSourceScanRuleTest extends TableTestBase {
}
@Test
- public void testWatermarkOnComputedColumnWithMultipleInputs() {
+ void testWatermarkOnComputedColumnWithMultipleInputs() {
String ddl =
"CREATE TABLE MyTable("
+ " a STRING,\n"
@@ -155,7 +155,7 @@ public class PushWatermarkIntoTableSourceScanRuleTest extends TableTestBase {
}
@Test
- public void testWatermarkOnRow() {
+ void testWatermarkOnRow() {
String ddl =
"CREATE TABLE MyTable("
+ " a INT,\n"
@@ -174,7 +174,7 @@ public class PushWatermarkIntoTableSourceScanRuleTest extends TableTestBase {
}
@Test
- public void testWatermarkOnNestedRow() {
+ void testWatermarkOnNestedRow() {
String ddl =
"CREATE TABLE MyTable("
+ " a INT,\n"
@@ -193,7 +193,7 @@ public class PushWatermarkIntoTableSourceScanRuleTest extends TableTestBase {
}
@Test
- public void testWatermarkWithMultiInputUdf() {
+ void testWatermarkWithMultiInputUdf() {
JavaFunc5.closeCalled = false;
JavaFunc5.openCalled = false;
util.addTemporarySystemFunction("func", new JavaFunc5());
@@ -216,7 +216,7 @@ public class PushWatermarkIntoTableSourceScanRuleTest extends TableTestBase {
}
@Test
- public void testWatermarkOnMetadata() {
+ void testWatermarkOnMetadata() {
String ddl =
"CREATE TABLE MyTable("
+ " `a` INT,\n"
@@ -237,7 +237,7 @@ public class PushWatermarkIntoTableSourceScanRuleTest extends TableTestBase {
}
@Test
- public void testWatermarkWithIdleSource() {
+ void testWatermarkWithIdleSource() {
util.tableEnv().getConfig().set(TABLE_EXEC_SOURCE_IDLE_TIMEOUT, Duration.ofMillis(1000));
String ddl =
"CREATE TABLE MyTable("
@@ -256,7 +256,7 @@ public class PushWatermarkIntoTableSourceScanRuleTest extends TableTestBase {
}
@Test
- public void testWatermarkWithPythonFunctionInComputedColumn() {
+ void testWatermarkWithPythonFunctionInComputedColumn() {
util.tableEnv()
.createTemporaryFunction(
"parse_ts",
@@ -277,7 +277,7 @@ public class PushWatermarkIntoTableSourceScanRuleTest extends TableTestBase {
}
@Test
- public void testWatermarkEmitStrategyWithOptions() {
+ void testWatermarkEmitStrategyWithOptions() {
String ddl =
"CREATE TABLE MyTable("
+ " a INT,\n"
@@ -296,7 +296,7 @@ public class PushWatermarkIntoTableSourceScanRuleTest extends TableTestBase {
}
@Test
- public void testWatermarkEmitStrategyWithHint() {
+ void testWatermarkEmitStrategyWithHint() {
String ddl =
"CREATE TABLE MyTable("
+ " a INT,\n"
@@ -316,7 +316,7 @@ public class PushWatermarkIntoTableSourceScanRuleTest extends TableTestBase {
}
@Test
- public void testWatermarkAlignmentWithOptions() {
+ void testWatermarkAlignmentWithOptions() {
String ddl =
"CREATE TABLE MyTable("
+ " a INT,\n"
@@ -336,7 +336,7 @@ public class PushWatermarkIntoTableSourceScanRuleTest extends TableTestBase {
}
@Test
- public void testWatermarkAlignmentWithHint() {
+ void testWatermarkAlignmentWithHint() {
String ddl =
"CREATE TABLE MyTable("
+ " a INT,\n"
@@ -357,7 +357,7 @@ public class PushWatermarkIntoTableSourceScanRuleTest extends TableTestBase {
}
@Test
- public void testIdleSourceWithOptions() {
+ void testIdleSourceWithOptions() {
util.tableEnv().getConfig().set(TABLE_EXEC_SOURCE_IDLE_TIMEOUT, Duration.ofMillis(1000));
String ddl =
"CREATE TABLE MyTable("
@@ -377,7 +377,7 @@ public class PushWatermarkIntoTableSourceScanRuleTest extends TableTestBase {
}
@Test
- public void testIdleSourceWithHint() {
+ void testIdleSourceWithHint() {
util.tableEnv().getConfig().set(TABLE_EXEC_SOURCE_IDLE_TIMEOUT, Duration.ofMillis(1000));
String ddl =
"CREATE TABLE MyTable("
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/rules/logical/RemoveUnreachableCoalesceArgumentsRuleTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/rules/logical/RemoveUnreachableCoalesceArgumentsRuleTest.java
index 799ac38014c..3610b20d6f3 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/rules/logical/RemoveUnreachableCoalesceArgumentsRuleTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/rules/logical/RemoveUnreachableCoalesceArgumentsRuleTest.java
@@ -25,18 +25,18 @@ import org.apache.flink.table.planner.factories.TableFactoryHarness;
import org.apache.flink.table.planner.utils.StreamTableTestUtil;
import org.apache.flink.table.planner.utils.TableTestBase;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
import static org.apache.flink.table.api.DataTypes.STRING;
/** Test rule {@link RemoveUnreachableCoalesceArgumentsRule}. */
-public class RemoveUnreachableCoalesceArgumentsRuleTest extends TableTestBase {
+class RemoveUnreachableCoalesceArgumentsRuleTest extends TableTestBase {
private StreamTableTestUtil util;
- @Before
- public void before() {
+ @BeforeEach
+ void before() {
util = streamTestUtil(TableConfig.getDefault());
final TableDescriptor sourceDescriptor =
@@ -54,38 +54,38 @@ public class RemoveUnreachableCoalesceArgumentsRuleTest extends TableTestBase {
}
@Test
- public void testOnlyLastNonNull() {
+ void testOnlyLastNonNull() {
util.verifyRelPlan("SELECT COALESCE(f0, f1) FROM T");
}
@Test
- public void testAllNullable() {
+ void testAllNullable() {
util.verifyRelPlan("SELECT COALESCE(f0, f2) FROM T");
}
@Test
- public void testDropLastConstant() {
+ void testDropLastConstant() {
util.verifyRelPlan("SELECT COALESCE(f0, f1, '-') FROM T");
}
@Test
- public void testDropCoalesce() {
+ void testDropCoalesce() {
util.verifyRelPlan("SELECT COALESCE(f1, '-') FROM T");
}
@Test
- public void testFilterCoalesce() {
+ void testFilterCoalesce() {
util.verifyRelPlan("SELECT * FROM T WHERE COALESCE(f0, f1, '-') = 'abc'");
}
@Test
- public void testJoinCoalesce() {
+ void testJoinCoalesce() {
util.verifyRelPlan(
"SELECT * FROM T t1 LEFT JOIN T t2 ON COALESCE(t1.f0, '-', t1.f2) = t2.f0");
}
@Test
- public void testMultipleCoalesces() {
+ void testMultipleCoalesces() {
util.verifyRelPlan(
"SELECT COALESCE(1),\n"
+ "COALESCE(1, 2),\n"
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/rules/logical/WrapJsonAggFunctionArgumentsRuleTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/rules/logical/WrapJsonAggFunctionArgumentsRuleTest.java
index ba4d497fd9e..e512d3b26d5 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/rules/logical/WrapJsonAggFunctionArgumentsRuleTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/rules/logical/WrapJsonAggFunctionArgumentsRuleTest.java
@@ -21,33 +21,34 @@ package org.apache.flink.table.planner.plan.rules.logical;
import org.apache.flink.table.api.TableConfig;
import org.apache.flink.table.planner.utils.TableTestBase;
import org.apache.flink.table.planner.utils.TableTestUtil;
+import org.apache.flink.testutils.junit.extensions.parameterized.ParameterizedTestExtension;
+import org.apache.flink.testutils.junit.extensions.parameterized.Parameters;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.TestTemplate;
+import org.junit.jupiter.api.extension.ExtendWith;
import java.util.Arrays;
import java.util.Collection;
/** Tests for {@link WrapJsonAggFunctionArgumentsRule}. */
-@RunWith(Parameterized.class)
-public class WrapJsonAggFunctionArgumentsRuleTest extends TableTestBase {
+@ExtendWith(ParameterizedTestExtension.class)
+class WrapJsonAggFunctionArgumentsRuleTest extends TableTestBase {
private final boolean batchMode;
private TableTestUtil util;
- @Parameterized.Parameters(name = "batchMode = {0}")
- public static Collection<Boolean> data() {
+ @Parameters(name = "batchMode = {0}")
+ private static Collection<Boolean> data() {
return Arrays.asList(true, false);
}
- public WrapJsonAggFunctionArgumentsRuleTest(boolean batchMode) {
+ WrapJsonAggFunctionArgumentsRuleTest(boolean batchMode) {
this.batchMode = batchMode;
}
- @Before
- public void setup() {
+ @BeforeEach
+ void setup() {
if (batchMode) {
util = batchTestUtil(TableConfig.getDefault());
} else {
@@ -79,55 +80,55 @@ public class WrapJsonAggFunctionArgumentsRuleTest extends TableTestBase {
+ "'\n)");
}
- @Test
- public void testJsonObjectAgg() {
+ @TestTemplate
+ void testJsonObjectAgg() {
util.verifyRelPlan("SELECT JSON_OBJECTAGG(f1 VALUE f1) FROM T");
}
- @Test
- public void testJsonObjectAggInGroupWindow() {
+ @TestTemplate
+ void testJsonObjectAggInGroupWindow() {
util.verifyRelPlan("SELECT f0, JSON_OBJECTAGG(f1 VALUE f0) FROM T GROUP BY f0");
}
- @Test
- public void testJsonArrayAgg() {
+ @TestTemplate
+ void testJsonArrayAgg() {
util.verifyRelPlan("SELECT JSON_ARRAYAGG(f0) FROM T");
}
- @Test
- public void testJsonArrayAggInGroupWindow() {
+ @TestTemplate
+ void testJsonArrayAggInGroupWindow() {
util.verifyRelPlan("SELECT f0, JSON_ARRAYAGG(f0) FROM T GROUP BY f0");
}
- @Test
- public void testJsonObjectAggWithOtherAggs() {
+ @TestTemplate
+ void testJsonObjectAggWithOtherAggs() {
util.verifyRelPlan("SELECT COUNT(*), JSON_OBJECTAGG(f1 VALUE f1) FROM T");
}
- @Test
- public void testGroupJsonObjectAggWithOtherAggs() {
+ @TestTemplate
+ void testGroupJsonObjectAggWithOtherAggs() {
util.verifyRelPlan(
"SELECT f0, COUNT(*), JSON_OBJECTAGG(f1 VALUE f0), SUM(f2) FROM T GROUP BY f0");
}
- @Test
- public void testJsonArrayAggWithOtherAggs() {
+ @TestTemplate
+ void testJsonArrayAggWithOtherAggs() {
util.verifyRelPlan("SELECT COUNT(*), JSON_ARRAYAGG(f0) FROM T");
}
- @Test
- public void testGroupJsonArrayAggInWithOtherAggs() {
+ @TestTemplate
+ void testGroupJsonArrayAggInWithOtherAggs() {
util.verifyRelPlan("SELECT f0, COUNT(*), JSON_ARRAYAGG(f0), SUM(f2) FROM T GROUP BY f0");
}
- @Test
- public void testJsonArrayAggAndJsonObjectAggWithOtherAggs() {
+ @TestTemplate
+ void testJsonArrayAggAndJsonObjectAggWithOtherAggs() {
util.verifyRelPlan(
"SELECT MAX(f0), JSON_OBJECTAGG(f1 VALUE f0), JSON_ARRAYAGG(f1), JSON_ARRAYAGG(f0) FROM T");
}
- @Test
- public void testGroupJsonArrayAggAndJsonObjectAggWithOtherAggs() {
+ @TestTemplate
+ void testGroupJsonArrayAggAndJsonObjectAggWithOtherAggs() {
util.verifyRelPlan(
"SELECT f0, JSON_OBJECTAGG(f1 VALUE f2), JSON_ARRAYAGG(f1), JSON_ARRAYAGG(f2),"
+ " SUM(f2) FROM T GROUP BY f0");
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/rules/physical/batch/PushLocalAggIntoTableSourceScanRuleTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/rules/physical/batch/PushLocalAggIntoTableSourceScanRuleTest.java
index 6f20e6ef0bb..01558291d80 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/rules/physical/batch/PushLocalAggIntoTableSourceScanRuleTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/rules/physical/batch/PushLocalAggIntoTableSourceScanRuleTest.java
@@ -26,18 +26,18 @@ import org.apache.flink.table.planner.utils.BatchTableTestUtil;
import org.apache.flink.table.planner.utils.TableTestBase;
import org.apache.flink.table.runtime.functions.aggregate.CollectAggFunction;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
/**
* Test for rules that extend {@link PushLocalAggIntoScanRuleBase} to push down local aggregates
* into table source.
*/
-public class PushLocalAggIntoTableSourceScanRuleTest extends TableTestBase {
+class PushLocalAggIntoTableSourceScanRuleTest extends TableTestBase {
protected BatchTableTestUtil util = batchTestUtil(TableConfig.getDefault());
- @Before
- public void setup() {
+ @BeforeEach
+ void setup() {
TableConfig tableConfig = util.tableEnv().getConfig();
tableConfig.set(
OptimizerConfigOptions.TABLE_OPTIMIZER_SOURCE_AGGREGATE_PUSHDOWN_ENABLED, true);
@@ -109,7 +109,7 @@ public class PushLocalAggIntoTableSourceScanRuleTest extends TableTestBase {
}
@Test
- public void testCanPushDownLocalHashAggWithGroup() {
+ void testCanPushDownLocalHashAggWithGroup() {
util.verifyRelPlan(
"SELECT\n"
+ " sum(amount),\n"
@@ -120,7 +120,7 @@ public class PushLocalAggIntoTableSourceScanRuleTest extends TableTestBase {
}
@Test
- public void testDisablePushDownLocalAgg() {
+ void testDisablePushDownLocalAgg() {
// disable push down local agg
util.getTableEnv()
.getConfig()
@@ -145,7 +145,7 @@ public class PushLocalAggIntoTableSourceScanRuleTest extends TableTestBase {
}
@Test
- public void testCanPushDownLocalHashAggWithoutGroup() {
+ void testCanPushDownLocalHashAggWithoutGroup() {
util.verifyRelPlan(
"SELECT\n"
+ " min(id),\n"
@@ -157,7 +157,7 @@ public class PushLocalAggIntoTableSourceScanRuleTest extends TableTestBase {
}
@Test
- public void testCanPushDownLocalSortAggWithoutSort() {
+ void testCanPushDownLocalSortAggWithoutSort() {
// enable sort agg
util.getTableEnv()
.getConfig()
@@ -179,7 +179,7 @@ public class PushLocalAggIntoTableSourceScanRuleTest extends TableTestBase {
}
@Test
- public void testCanPushDownLocalSortAggWithSort() {
+ void testCanPushDownLocalSortAggWithSort() {
// enable sort agg
util.getTableEnv()
.getConfig()
@@ -200,7 +200,7 @@ public class PushLocalAggIntoTableSourceScanRuleTest extends TableTestBase {
}
@Test
- public void testCanPushDownLocalAggAfterFilterPushDown() {
+ void testCanPushDownLocalAggAfterFilterPushDown() {
util.verifyRelPlan(
"SELECT\n"
@@ -213,7 +213,7 @@ public class PushLocalAggIntoTableSourceScanRuleTest extends TableTestBase {
}
@Test
- public void testCanPushDownLocalAggWithMetadata() {
+ void testCanPushDownLocalAggWithMetadata() {
util.verifyRelPlan(
"SELECT\n"
+ " sum(amount),\n"
@@ -226,7 +226,7 @@ public class PushLocalAggIntoTableSourceScanRuleTest extends TableTestBase {
}
@Test
- public void testCanPushDownLocalAggWithPartition() {
+ void testCanPushDownLocalAggWithPartition() {
util.verifyRelPlan(
"SELECT\n"
+ " sum(amount),\n"
@@ -238,7 +238,7 @@ public class PushLocalAggIntoTableSourceScanRuleTest extends TableTestBase {
}
@Test
- public void testCanPushDownLocalAggWithoutProjectionPushDown() {
+ void testCanPushDownLocalAggWithoutProjectionPushDown() {
util.verifyRelPlan(
"SELECT\n"
+ " sum(amount),\n"
@@ -250,7 +250,7 @@ public class PushLocalAggIntoTableSourceScanRuleTest extends TableTestBase {
}
@Test
- public void testCanPushDownLocalAggWithAuxGrouping() {
+ void testCanPushDownLocalAggWithAuxGrouping() {
// enable two-phase aggregate, otherwise there is no local aggregate
util.getTableEnv()
.getConfig()
@@ -264,7 +264,7 @@ public class PushLocalAggIntoTableSourceScanRuleTest extends TableTestBase {
}
@Test
- public void testCannotPushDownLocalAggAfterLimitPushDown() {
+ void testCannotPushDownLocalAggAfterLimitPushDown() {
util.verifyRelPlan(
"SELECT\n"
@@ -281,7 +281,7 @@ public class PushLocalAggIntoTableSourceScanRuleTest extends TableTestBase {
}
@Test
- public void testCannotPushDownLocalAggWithUDAF() {
+ void testCannotPushDownLocalAggWithUDAF() {
// add udf
util.addTemporarySystemFunction(
"udaf_collect", new CollectAggFunction<>(DataTypes.BIGINT().getLogicalType()));
@@ -296,7 +296,7 @@ public class PushLocalAggIntoTableSourceScanRuleTest extends TableTestBase {
}
@Test
- public void testCannotPushDownLocalAggWithUnsupportedDataTypes() {
+ void testCannotPushDownLocalAggWithUnsupportedDataTypes() {
util.verifyRelPlan(
"SELECT\n"
+ " max(name),\n"
@@ -306,7 +306,7 @@ public class PushLocalAggIntoTableSourceScanRuleTest extends TableTestBase {
}
@Test
- public void testCannotPushDownWithColumnExpression() {
+ void testCannotPushDownWithColumnExpression() {
util.verifyRelPlan(
"SELECT\n"
+ " min(amount + price),\n"
@@ -319,7 +319,7 @@ public class PushLocalAggIntoTableSourceScanRuleTest extends TableTestBase {
}
@Test
- public void testCannotPushDownWithUnsupportedAggFunction() {
+ void testCannotPushDownWithUnsupportedAggFunction() {
util.verifyRelPlan(
"SELECT\n"
+ " min(id),\n"
@@ -332,7 +332,7 @@ public class PushLocalAggIntoTableSourceScanRuleTest extends TableTestBase {
}
@Test
- public void testCannotPushDownWithWindowAggFunction() {
+ void testCannotPushDownWithWindowAggFunction() {
util.verifyRelPlan(
"SELECT\n"
+ " id,\n"
@@ -343,7 +343,7 @@ public class PushLocalAggIntoTableSourceScanRuleTest extends TableTestBase {
}
@Test
- public void testCannotPushDownWithArgFilter() {
+ void testCannotPushDownWithArgFilter() {
util.verifyRelPlan(
"SELECT\n"
+ " min(id),\n"
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/rules/physical/stream/PushCalcPastChangelogNormalizeRuleTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/rules/physical/stream/PushCalcPastChangelogNormalizeRuleTest.java
index 4e0b2009e7d..b27dda1ded2 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/rules/physical/stream/PushCalcPastChangelogNormalizeRuleTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/rules/physical/stream/PushCalcPastChangelogNormalizeRuleTest.java
@@ -26,25 +26,25 @@ import org.apache.flink.table.planner.factories.TableFactoryHarness;
import org.apache.flink.table.planner.utils.StreamTableTestUtil;
import org.apache.flink.table.planner.utils.TableTestBase;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
import static org.apache.flink.table.api.DataTypes.BIGINT;
import static org.apache.flink.table.api.DataTypes.INT;
import static org.apache.flink.table.api.DataTypes.STRING;
/** Tests for {@link PushCalcPastChangelogNormalizeRule}. */
-public class PushCalcPastChangelogNormalizeRuleTest extends TableTestBase {
+class PushCalcPastChangelogNormalizeRuleTest extends TableTestBase {
private StreamTableTestUtil util;
- @Before
- public void before() {
+ @BeforeEach
+ void before() {
util = streamTestUtil(TableConfig.getDefault());
}
@Test
- public void testWithSinglePrimaryKeyFilter() {
+ void testWithSinglePrimaryKeyFilter() {
final TableDescriptor sourceDescriptor =
TableFactoryHarness.newBuilder()
.schema(
@@ -61,7 +61,7 @@ public class PushCalcPastChangelogNormalizeRuleTest extends TableTestBase {
}
@Test
- public void testWithMultipleFilters() {
+ void testWithMultipleFilters() {
final TableDescriptor sourceDescriptor =
TableFactoryHarness.newBuilder()
.schema(
@@ -82,7 +82,7 @@ public class PushCalcPastChangelogNormalizeRuleTest extends TableTestBase {
}
@Test
- public void testWithMultiplePrimaryKeyColumns() {
+ void testWithMultiplePrimaryKeyColumns() {
final TableDescriptor sourceDescriptor =
TableFactoryHarness.newBuilder()
.schema(
@@ -100,7 +100,7 @@ public class PushCalcPastChangelogNormalizeRuleTest extends TableTestBase {
}
@Test
- public void testOnlyProjection() {
+ void testOnlyProjection() {
final TableDescriptor sourceDescriptor =
TableFactoryHarness.newBuilder()
.schema(
@@ -118,7 +118,7 @@ public class PushCalcPastChangelogNormalizeRuleTest extends TableTestBase {
}
@Test
- public void testFilterAndProjection() {
+ void testFilterAndProjection() {
final TableDescriptor sourceDescriptor =
TableFactoryHarness.newBuilder()
.schema(
@@ -141,7 +141,7 @@ public class PushCalcPastChangelogNormalizeRuleTest extends TableTestBase {
}
@Test
- public void testPartialPrimaryKeyFilterAndProjection() {
+ void testPartialPrimaryKeyFilterAndProjection() {
final TableDescriptor sourceDescriptor =
TableFactoryHarness.newBuilder()
.schema(
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/stream/sql/CalcMergeTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/stream/sql/CalcMergeTest.java
index 9da719f03b1..74efb225979 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/stream/sql/CalcMergeTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/stream/sql/CalcMergeTest.java
@@ -23,7 +23,7 @@ import org.apache.flink.table.planner.plan.common.CalcMergeTestBase;
import org.apache.flink.table.planner.utils.TableTestUtil;
/** Plan test for calc merge. */
-public class CalcMergeTest extends CalcMergeTestBase {
+class CalcMergeTest extends CalcMergeTestBase {
@Override
protected boolean isBatchMode() {
return false;
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/stream/sql/DynamicFunctionPlanTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/stream/sql/DynamicFunctionPlanTest.java
index adb4523e78d..2a00d2f033b 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/stream/sql/DynamicFunctionPlanTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/stream/sql/DynamicFunctionPlanTest.java
@@ -23,7 +23,7 @@ import org.apache.flink.table.planner.plan.common.DynamicFunctionPlanTestBase;
import org.apache.flink.table.planner.utils.TableTestUtil;
/** Plan test for queries contain dynamic functions in streaming. */
-public class DynamicFunctionPlanTest extends DynamicFunctionPlanTestBase {
+class DynamicFunctionPlanTest extends DynamicFunctionPlanTestBase {
@Override
protected TableTestUtil getTableTestUtil() {
return streamTestUtil(TableConfig.getDefault());
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/stream/sql/InsertIntoValuesTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/stream/sql/InsertIntoValuesTest.java
index 34c5286a3c3..eb032a1c0ef 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/stream/sql/InsertIntoValuesTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/stream/sql/InsertIntoValuesTest.java
@@ -21,14 +21,14 @@ package org.apache.flink.table.planner.plan.stream.sql;
import org.apache.flink.table.planner.utils.JavaStreamTableTestUtil;
import org.apache.flink.table.planner.utils.TableTestBase;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
/** Plan test for INSERT INTO. */
-public class InsertIntoValuesTest extends TableTestBase {
+class InsertIntoValuesTest extends TableTestBase {
private final JavaStreamTableTestUtil util = javaStreamTestUtil();
@Test
- public void testTypeInferenceWithNestedTypes() {
+ void testTypeInferenceWithNestedTypes() {
util.tableEnv()
.executeSql(
"CREATE TABLE t1 ("
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/stream/sql/LegacyTableFactoryTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/stream/sql/LegacyTableFactoryTest.java
index 2984e74086d..73d849826cb 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/stream/sql/LegacyTableFactoryTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/stream/sql/LegacyTableFactoryTest.java
@@ -22,25 +22,25 @@ import org.apache.flink.connector.file.table.LegacyTableFactory;
import org.apache.flink.table.planner.utils.JavaStreamTableTestUtil;
import org.apache.flink.table.planner.utils.TableTestBase;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
/** Tests for usages of {@link LegacyTableFactory}. */
-public class LegacyTableFactoryTest extends TableTestBase {
+class LegacyTableFactoryTest extends TableTestBase {
private final JavaStreamTableTestUtil util;
- public LegacyTableFactoryTest() {
+ LegacyTableFactoryTest() {
util = javaStreamTestUtil();
util.tableEnv().executeSql("CREATE TABLE T (a INT) WITH ('type'='legacy')");
}
@Test
- public void testSelect() {
+ void testSelect() {
util.verifyExecPlan("SELECT * FROM T");
}
@Test
- public void testInsert() {
+ void testInsert() {
util.verifyExecPlanInsert("INSERT INTO T VALUES (1)");
}
}
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/stream/sql/NullTypeTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/stream/sql/NullTypeTest.java
index 9aa303dcadb..61f161bb2b2 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/stream/sql/NullTypeTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/stream/sql/NullTypeTest.java
@@ -25,71 +25,82 @@ import org.apache.flink.table.functions.ScalarFunction;
import org.apache.flink.table.planner.utils.JavaStreamTableTestUtil;
import org.apache.flink.table.planner.utils.TableTestBase;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
+
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
/** Tests for usages of {@link DataTypes#NULL()}. */
-public class NullTypeTest extends TableTestBase {
+class NullTypeTest extends TableTestBase {
private final JavaStreamTableTestUtil util = javaStreamTestUtil();
@Test
- public void testValues() {
- expectedException().expect(ValidationException.class);
- expectedException().expectMessage("Illegal use of 'NULL'");
- util.verifyExecPlan("SELECT * FROM (VALUES (1, NULL), (2, NULL)) AS T(a, b)");
+ void testValues() {
+ assertThatThrownBy(
+ () ->
+ util.verifyExecPlan(
+ "SELECT * FROM (VALUES (1, NULL), (2, NULL)) AS T(a, b)"))
+ .hasMessageContaining("Illegal use of 'NULL'")
+ .isInstanceOf(ValidationException.class);
}
@Test
- public void testValuesWithoutTypeCoercion() {
+ void testValuesWithoutTypeCoercion() {
// should work if we enable type coercion, works already in Table API
- expectedException().expect(ValidationException.class);
- expectedException().expectMessage("Illegal use of 'NULL'");
- util.verifyExecPlan("SELECT * FROM (VALUES (1, NULL), (2, 1)) AS T(a, b)");
+ assertThatThrownBy(
+ () ->
+ util.verifyExecPlan(
+ "SELECT * FROM (VALUES (1, NULL), (2, 1)) AS T(a, b)"))
+ .hasMessageContaining("Illegal use of 'NULL'")
+ .isInstanceOf(ValidationException.class);
}
@Test
- public void testSetOperationWithoutTypeCoercion() {
+ void testSetOperationWithoutTypeCoercion() {
// we might want to support type coercion here
- expectedException().expect(ValidationException.class);
- expectedException().expectMessage("Parameters must be of the same type");
- util.verifyExecPlan("SELECT ARRAY[1,2] IN (ARRAY[1], ARRAY[1,2], ARRAY[NULL, NULL, NULL])");
+ assertThatThrownBy(
+ () ->
+ util.verifyExecPlan(
+ "SELECT ARRAY[1,2] IN (ARRAY[1], ARRAY[1,2], ARRAY[NULL, NULL, NULL])"))
+ .hasMessageContaining("Parameters must be of the same type")
+ .isInstanceOf(ValidationException.class);
}
@Test
- public void testBuiltInFunction() {
- expectedException().expect(ValidationException.class);
- expectedException().expectMessage("Illegal use of 'NULL'");
- util.verifyExecPlan("SELECT ABS(NULL)");
+ void testBuiltInFunction() {
+ assertThatThrownBy(() -> util.verifyExecPlan("SELECT ABS(NULL)"))
+ .hasMessageContaining("Illegal use of 'NULL'")
+ .isInstanceOf(ValidationException.class);
}
@Test
- public void testArrayConstructor() {
- expectedException().expect(ValidationException.class);
- expectedException().expectMessage("Parameters must be of the same type");
- util.verifyExecPlan("SELECT ARRAY[NULL]");
+ void testArrayConstructor() {
+ assertThatThrownBy(() -> util.verifyExecPlan("SELECT ARRAY[NULL]"))
+ .hasMessageContaining("Parameters must be of the same type")
+ .isInstanceOf(ValidationException.class);
}
@Test
- public void testMapConstructor() {
- expectedException().expect(ValidationException.class);
- expectedException().expectMessage("Parameters must be of the same type");
- util.verifyExecPlan("SELECT MAP[NULL, NULL]");
+ void testMapConstructor() {
+ assertThatThrownBy(() -> util.verifyExecPlan("SELECT MAP[NULL, NULL]"))
+ .hasMessageContaining("Parameters must be of the same type")
+ .isInstanceOf(ValidationException.class);
}
@Test
- public void testFunctionReturningNull() {
- expectedException().expect(ValidationException.class);
- expectedException().expectMessage("SQL validation failed. Invalid function call");
+ void testFunctionReturningNull() {
util.addTemporarySystemFunction("NullTypeFunction", NullTypeFunction.class);
- util.verifyExecPlan("SELECT NullTypeFunction(12)");
+ assertThatThrownBy(() -> util.verifyExecPlan("SELECT NullTypeFunction(12)"))
+ .hasMessageContaining("SQL validation failed. Invalid function call")
+ .isInstanceOf(ValidationException.class);
}
@Test
- public void testNestedNull() {
- expectedException().expect(ValidationException.class);
- expectedException().expectMessage("SQL validation failed. Invalid function call");
+ void testNestedNull() {
util.addTemporarySystemFunction("NestedNullTypeFunction", NestedNullTypeFunction.class);
- util.verifyExecPlan("SELECT NestedNullTypeFunction(12)");
+ assertThatThrownBy(() -> util.verifyExecPlan("SELECT NestedNullTypeFunction(12)"))
+ .hasMessageContaining("SQL validation failed. Invalid function call")
+ .isInstanceOf(ValidationException.class);
}
// --------------------------------------------------------------------------------------------
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/stream/table/ValuesTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/stream/table/ValuesTest.java
index 7c4e1a8d276..667683089a6 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/stream/table/ValuesTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/stream/table/ValuesTest.java
@@ -26,7 +26,7 @@ import org.apache.flink.table.planner.utils.TableTestBase;
import org.apache.flink.table.types.DataType;
import org.apache.flink.types.Row;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
import java.time.LocalTime;
import java.util.Arrays;
@@ -38,12 +38,13 @@ import static org.apache.flink.table.api.Expressions.map;
import static org.apache.flink.table.api.Expressions.nullOf;
import static org.apache.flink.table.api.Expressions.pi;
import static org.apache.flink.table.api.Expressions.row;
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
/** Tests for {@link org.apache.flink.table.api.TableEnvironment#fromValues}. */
-public class ValuesTest extends TableTestBase {
+class ValuesTest extends TableTestBase {
@Test
- public void testValuesAllEqualTypes() {
+ void testValuesAllEqualTypes() {
JavaStreamTableTestUtil util = javaStreamTestUtil();
Table t =
util.getTableEnv()
@@ -56,14 +57,14 @@ public class ValuesTest extends TableTestBase {
}
@Test
- public void testValuesFromLiterals() {
+ void testValuesFromLiterals() {
JavaStreamTableTestUtil util = javaStreamTestUtil();
Table t = util.getTableEnv().fromValues(1, 3.1f, 99L, null);
util.verifyExecPlan(t);
}
@Test
- public void testValuesFromRowExpression() {
+ void testValuesFromRowExpression() {
JavaStreamTableTestUtil util = javaStreamTestUtil();
Table t =
util.getTableEnv()
@@ -84,7 +85,7 @@ public class ValuesTest extends TableTestBase {
}
@Test
- public void testValuesFromRowObject() {
+ void testValuesFromRowObject() {
JavaStreamTableTestUtil util = javaStreamTestUtil();
Table t =
util.getTableEnv()
@@ -98,7 +99,7 @@ public class ValuesTest extends TableTestBase {
}
@Test
- public void testValuesFromMixedObjectsAndExpressions() {
+ void testValuesFromMixedObjectsAndExpressions() {
JavaStreamTableTestUtil util = javaStreamTestUtil();
Table t =
util.getTableEnv()
@@ -112,7 +113,7 @@ public class ValuesTest extends TableTestBase {
}
@Test
- public void testValuesFromRowObjectInCollection() {
+ void testValuesFromRowObjectInCollection() {
JavaStreamTableTestUtil util = javaStreamTestUtil();
List<Object> data =
Arrays.asList(
@@ -132,7 +133,7 @@ public class ValuesTest extends TableTestBase {
}
@Test
- public void testValuesFromNestedRowObject() {
+ void testValuesFromNestedRowObject() {
JavaStreamTableTestUtil util = javaStreamTestUtil();
Table t =
util.getTableEnv()
@@ -143,7 +144,7 @@ public class ValuesTest extends TableTestBase {
}
@Test
- public void testValuesOverrideSchema() {
+ void testValuesOverrideSchema() {
JavaStreamTableTestUtil util = javaStreamTestUtil();
Table t =
util.getTableEnv()
@@ -157,7 +158,7 @@ public class ValuesTest extends TableTestBase {
}
@Test
- public void testValuesOverrideNullability() {
+ void testValuesOverrideNullability() {
JavaStreamTableTestUtil util = javaStreamTestUtil();
Table t =
util.getTableEnv()
@@ -171,7 +172,7 @@ public class ValuesTest extends TableTestBase {
}
@Test
- public void testValuesWithComplexNesting() {
+ void testValuesWithComplexNesting() {
JavaStreamTableTestUtil util = javaStreamTestUtil();
Table t =
util.getTableEnv()
@@ -210,39 +211,54 @@ public class ValuesTest extends TableTestBase {
}
@Test
- public void testNoCommonType() {
- thrown().expect(ValidationException.class);
- thrown().expectMessage(
- "Types in fromValues(...) must have a common super type. Could not"
- + " find a common type for all rows at column 1.");
+ void testNoCommonType() {
JavaStreamTableTestUtil util = javaStreamTestUtil();
- util.getTableEnv()
- .fromValues(row("ABC", 1L), row("ABC", lit(LocalTime.of(0, 0, 0))), row("ABC", 2));
+
+ assertThatThrownBy(
+ () ->
+ util.getTableEnv()
+ .fromValues(
+ row("ABC", 1L),
+ row("ABC", lit(LocalTime.of(0, 0, 0))),
+ row("ABC", 2)))
+ .hasMessageContaining(
+ "Types in fromValues(...) must have a common super type. Could not"
+ + " find a common type for all rows at column 1.")
+ .isInstanceOf(ValidationException.class);
}
@Test
- public void testCannotCast() {
- thrown().expect(ValidationException.class);
- thrown().expectMessage(
- "Could not cast the value of the 0 column: [ 4 ] of a row: [ 4 ]"
- + " to the requested type: BINARY(3)");
+ void testCannotCast() {
JavaStreamTableTestUtil util = javaStreamTestUtil();
- util.getTableEnv()
- .fromValues(DataTypes.ROW(DataTypes.FIELD("f1", DataTypes.BINARY(3))), row(4));
+
+ assertThatThrownBy(
+ () ->
+ util.getTableEnv()
+ .fromValues(
+ DataTypes.ROW(
+ DataTypes.FIELD("f1", DataTypes.BINARY(3))),
+ row(4)))
+ .hasMessageContaining(
+ "Could not cast the value of the 0 column: [ 4 ] of a row: [ 4 ]"
+ + " to the requested type: BINARY(3)")
+ .isInstanceOf(ValidationException.class);
}
@Test
- public void testWrongRowTypeLength() {
- thrown().expect(ValidationException.class);
- thrown().expectMessage(
- "All rows in a fromValues(...) clause must have the same fields number. Row [4] has a different"
- + " length than the expected size: 2.");
+ void testWrongRowTypeLength() {
JavaStreamTableTestUtil util = javaStreamTestUtil();
- util.getTableEnv()
- .fromValues(
- DataTypes.ROW(
- DataTypes.FIELD("f1", DataTypes.BINARY(3)),
- DataTypes.FIELD("f2", DataTypes.STRING())),
- row(4));
+
+ assertThatThrownBy(
+ () ->
+ util.getTableEnv()
+ .fromValues(
+ DataTypes.ROW(
+ DataTypes.FIELD("f1", DataTypes.BINARY(3)),
+ DataTypes.FIELD("f2", DataTypes.STRING())),
+ row(4)))
+ .hasMessageContaining(
+ "All rows in a fromValues(...) clause must have the same fields number. Row [4] has a different"
+ + " length than the expected size: 2.")
+ .isInstanceOf(ValidationException.class);
}
}
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/common/ViewsExpandingTest.xml b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/common/ViewsExpandingTest.xml
index d8bf60b4952..ad37a1cdc1a 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/common/ViewsExpandingTest.xml
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/common/ViewsExpandingTest.xml
@@ -16,7 +16,7 @@ See the License for the specific language governing permissions and
limitations under the License.
-->
<Root>
- <TestCase name="testMixedSqlTableViewExpanding[0]">
+ <TestCase name="testMixedSqlTableViewExpanding[1]">
<Resource name="sql">
<![CDATA[select * from view4]]>
</Resource>
@@ -34,7 +34,7 @@ BoundedStreamScan(table=[[default_catalog, default_database, t1]], fields=[a, b,
]]>
</Resource>
</TestCase>
- <TestCase name="testMixedSqlTableViewExpanding[1]">
+ <TestCase name="testMixedSqlTableViewExpanding[2]">
<Resource name="sql">
<![CDATA[select * from view4]]>
</Resource>
@@ -52,7 +52,7 @@ DataStreamScan(table=[[default_catalog, default_database, t1]], fields=[a, b, c]
]]>
</Resource>
</TestCase>
- <TestCase name="testViewExpandingWithLateralTableFunction[0]">
+ <TestCase name="testViewExpandingWithLateralTableFunction[1]">
<Resource name="sql">
<![CDATA[select * from tmp_view]]>
</Resource>
@@ -75,7 +75,7 @@ Calc(select=[f0, name AS f1])
]]>
</Resource>
</TestCase>
- <TestCase name="testSqlExpanding[0]">
+ <TestCase name="testSqlExpanding[1]">
<Resource name="sql">
<![CDATA[SELECT * FROM view3]]>
</Resource>
@@ -94,7 +94,7 @@ BoundedStreamScan(table=[[default_catalog, default_database, t1]], fields=[a, b,
]]>
</Resource>
</TestCase>
- <TestCase name="testSqlExpanding[1]">
+ <TestCase name="testSqlExpanding[2]">
<Resource name="sql">
<![CDATA[SELECT * FROM view3]]>
</Resource>
@@ -113,7 +113,7 @@ DataStreamScan(table=[[default_catalog, default_database, t1]], fields=[a, b, c]
]]>
</Resource>
</TestCase>
- <TestCase name="testTableApiExpanding[0]">
+ <TestCase name="testTableApiExpanding[1]">
<Resource name="ast">
<![CDATA[
LogicalTableScan(table=[[default_catalog, default_database, t1]])
@@ -125,7 +125,7 @@ BoundedStreamScan(table=[[default_catalog, default_database, t1]], fields=[a, b,
]]>
</Resource>
</TestCase>
- <TestCase name="testTableApiExpanding[1]">
+ <TestCase name="testTableApiExpanding[2]">
<Resource name="ast">
<![CDATA[
LogicalTableScan(table=[[default_catalog, default_database, t1]])
@@ -137,7 +137,7 @@ DataStreamScan(table=[[default_catalog, default_database, t1]], fields=[a, b, c]
]]>
</Resource>
</TestCase>
- <TestCase name="testViewExpandingWithMismatchRowType[0]">
+ <TestCase name="testViewExpandingWithMismatchRowType[1]">
<Resource name="sql">
<![CDATA[select * from view1]]>
</Resource>
@@ -159,7 +159,7 @@ Calc(select=[CAST(a AS INTEGER) AS a, b, CAST(EXPR$2 AS INTEGER) AS c])
]]>
</Resource>
</TestCase>
- <TestCase name="testViewExpandingWithLateralTableFunction[1]">
+ <TestCase name="testViewExpandingWithLateralTableFunction[2]">
<Resource name="sql">
<![CDATA[select * from tmp_view]]>
</Resource>
@@ -182,7 +182,7 @@ Calc(select=[f0, name AS f1])
]]>
</Resource>
</TestCase>
- <TestCase name="testViewExpandingWithMismatchRowType[1]">
+ <TestCase name="testViewExpandingWithMismatchRowType[2]">
<Resource name="sql">
<![CDATA[select * from view1]]>
</Resource>
diff --git a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/hint/OptionsHintTest.xml b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/hint/OptionsHintTest.xml
index 568039e1c24..c128d22e19a 100644
--- a/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/hint/OptionsHintTest.xml
+++ b/flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/hint/OptionsHintTest.xml
@@ -16,7 +16,7 @@ See the License for the specific language governing permissions and
limitations under the License.
-->
<Root>
- <TestCase name="testAppendOptions[0: is-bounded=true]">
+ <TestCase name="testAppendOptions[is-bounded=true]">
<Resource name="sql">
<![CDATA[select * from t1/*+ OPTIONS(k5='v5', 'a.b.c'='fakeVal') */]]>
</Resource>
@@ -34,7 +34,7 @@ Calc(select=[a, b, (a + 1) AS c])
]]>
</Resource>
</TestCase>
- <TestCase name="testAppendOptions[1: is-bounded=false]">
+ <TestCase name="testAppendOptions[is-bounded=false]">
<Resource name="sql">
<![CDATA[select * from t1/*+ OPTIONS(k5='v5', 'a.b.c'='fakeVal') */]]>
</Resource>
@@ -52,7 +52,7 @@ Calc(select=[a, b, (a + 1) AS c])
]]>
</Resource>
</TestCase>
- <TestCase name="testJoinWithAppendedOptions[0: is-bounded=true]">
+ <TestCase name="testJoinWithAppendedOptions[is-bounded=true]">
<Resource name="sql">
<![CDATA[
select * from
@@ -81,7 +81,7 @@ MultipleInput(readOrder=[0,1], members=[\nHashJoin(joinType=[InnerJoin], where=[
]]>
</Resource>
</TestCase>
- <TestCase name="testJoinWithAppendedOptions[1: is-bounded=false]">
+ <TestCase name="testJoinWithAppendedOptions[is-bounded=false]">
<Resource name="sql">
<![CDATA[
select * from
@@ -111,7 +111,7 @@ Join(joinType=[InnerJoin], where=[(a = d)], select=[a, b, c, d, e, f], leftInput
]]>
</Resource>
</TestCase>
- <TestCase name="testOverrideOptions[0: is-bounded=true]">
+ <TestCase name="testOverrideOptions[is-bounded=true]">
<Resource name="sql">
<![CDATA[select * from t1/*+ OPTIONS(k1='#v1', k2='#v2') */]]>
</Resource>
@@ -129,7 +129,7 @@ Calc(select=[a, b, (a + 1) AS c])
]]>
</Resource>
</TestCase>
- <TestCase name="testJoinWithOverriddenOptions[0: is-bounded=true]">
+ <TestCase name="testJoinWithOverriddenOptions[is-bounded=true]">
<Resource name="sql">
<![CDATA[
select * from
@@ -158,7 +158,7 @@ MultipleInput(readOrder=[0,1], members=[\nHashJoin(joinType=[InnerJoin], where=[
]]>
</Resource>
</TestCase>
- <TestCase name="testJoinWithOverriddenOptions[1: is-bounded=false]">
+ <TestCase name="testJoinWithOverriddenOptions[is-bounded=false]">
<Resource name="sql">
<![CDATA[
select * from
@@ -188,7 +188,7 @@ Join(joinType=[InnerJoin], where=[(a = d)], select=[a, b, c, d, e, f], leftInput
]]>
</Resource>
</TestCase>
- <TestCase name="testOptionsHintInsideView[0: is-bounded=true]">
+ <TestCase name="testOptionsHintInsideView[is-bounded=true]">
<Resource name="sql">
<![CDATA[
select * from t2 join v1 on v1.a = t2.d
@@ -214,7 +214,7 @@ MultipleInput(readOrder=[1,0], members=[\nHashJoin(joinType=[InnerJoin], where=[
]]>
</Resource>
</TestCase>
- <TestCase name="testOverrideOptions[1: is-bounded=false]">
+ <TestCase name="testOverrideOptions[is-bounded=false]">
<Resource name="sql">
<![CDATA[select * from t1/*+ OPTIONS(k1='#v1', k2='#v2') */]]>
</Resource>
@@ -232,7 +232,7 @@ Calc(select=[a, b, (a + 1) AS c])
]]>
</Resource>
</TestCase>
- <TestCase name="testOptionsHintInsideView[1: is-bounded=false]">
+ <TestCase name="testOptionsHintInsideView[is-bounded=false]">
<Resource name="sql">
<
util.addFunction("random_udf", new NonDeterministicUdf)
@@ -103,9 +104,10 @@ class CalcTest extends TableTestBase {
util.verifyExecPlan("SELECT MyTable2.a.*, c, MyTable2.b.* FROM MyTable2")
}
- @Test(expected = classOf[ValidationException])
+ @Test
def testInvalidFields(): Unit = {
- util.tableEnv.sqlQuery("SELECT a, foo FROM MyTable")
+ assertThatExceptionOfType(classOf[ValidationException])
+ .isThrownBy(() => util.tableEnv.sqlQuery("SELECT a, foo FROM MyTable"))
}
@Test
diff --git a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/CompactManagedTableTest.scala b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/CompactManagedTableTest.scala
index c43c6380bed..b68d9b84129 100644
--- a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/CompactManagedTableTest.scala
+++ b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/CompactManagedTableTest.scala
@@ -22,7 +22,7 @@ import org.apache.flink.table.catalog.{CatalogPartitionSpec, ObjectIdentifier}
import org.apache.flink.table.factories.TestManagedTableFactory
import org.apache.flink.table.planner.utils.TableTestBase
-import org.junit.{After, Before, Test}
+import org.junit.jupiter.api.{AfterEach, BeforeEach, Test}
import java.util
import java.util.Collections
@@ -34,7 +34,7 @@ class CompactManagedTableTest extends TableTestBase {
ObjectIdentifier.of("default_catalog", "default_database", "ManagedTable")
private val testUtil = batchTestUtil()
- @Before
+ @BeforeEach
def before(): Unit = {
val tableRef = new AtomicReference[util.Map[String, String]]
TestManagedTableFactory.MANAGED_TABLES.put(tableIdentifier, tableRef)
@@ -60,7 +60,7 @@ class CompactManagedTableTest extends TableTestBase {
TestManagedTableFactory.MANAGED_TABLE_FILE_ENTRIES.put(tableIdentifier, fileRef)
}
- @After
+ @AfterEach
def after(): Unit = {
val ddl = "DROP TABLE ManagedTable"
testUtil.tableEnv.executeSql(ddl)
diff --git a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/DagOptimizationTest.scala b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/DagOptimizationTest.scala
index 8f4a4dd55d9..9a18da17f6f 100644
--- a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/DagOptimizationTest.scala
+++ b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/DagOptimizationTest.scala
@@ -25,7 +25,7 @@ import org.apache.flink.table.planner.runtime.utils.JavaUserDefinedScalarFunctio
import org.apache.flink.table.planner.utils.{TableFunc1, TableTestBase}
import org.apache.flink.table.types.logical._
-import org.junit.Test
+import org.junit.jupiter.api.Test
import java.sql.Timestamp
diff --git a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/DeadlockBreakupTest.scala b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/DeadlockBreakupTest.scala
index cd6abc57dcb..20868e298da 100644
--- a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/DeadlockBreakupTest.scala
+++ b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/DeadlockBreakupTest.scala
@@ -24,13 +24,13 @@ import org.apache.flink.table.api._
import org.apache.flink.table.api.config.{ExecutionConfigOptions, OptimizerConfigOptions}
import org.apache.flink.table.planner.utils.TableTestBase
-import org.junit.{Before, Test}
+import org.junit.jupiter.api.{BeforeEach, Test}
class DeadlockBreakupTest extends TableTestBase {
private val util = batchTestUtil()
- @Before
+ @BeforeEach
def before(): Unit = {
util.tableEnv.getConfig
.set(ExecutionOptions.BATCH_SHUFFLE_MODE, BatchShuffleMode.ALL_EXCHANGES_PIPELINED)
diff --git a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/LegacyLimitTest.scala b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/LegacyLimitTest.scala
index 7d968732dad..9eb46335111 100644
--- a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/LegacyLimitTest.scala
+++ b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/LegacyLimitTest.scala
@@ -21,13 +21,14 @@ import org.apache.flink.api.scala._
import org.apache.flink.table.api.{SqlParserException, _}
import org.apache.flink.table.planner.utils.TableTestBase
-import org.junit.{Before, Test}
+import org.assertj.core.api.Assertions.assertThatExceptionOfType
+import org.junit.jupiter.api.{BeforeEach, Test}
class LegacyLimitTest extends TableTestBase {
protected val util = batchTestUtil()
- @Before
+ @BeforeEach
def setup(): Unit = {
util.addTableSource[(Int, Long, String)]("MyTable", 'a, 'b, 'c)
val ddl =
@@ -54,9 +55,10 @@ class LegacyLimitTest extends TableTestBase {
util.verifyExecPlan("SELECT * FROM MyTable LIMIT 0")
}
- @Test(expected = classOf[SqlParserException])
+ @Test
def testNegativeLimitWithoutOffset(): Unit = {
- util.verifyExecPlan("SELECT * FROM MyTable LIMIT -1")
+ assertThatExceptionOfType(classOf[SqlParserException])
+ .isThrownBy(() => util.verifyExecPlan("SELECT * FROM MyTable LIMIT -1"))
}
@Test
@@ -79,9 +81,10 @@ class LegacyLimitTest extends TableTestBase {
util.verifyExecPlan("SELECT a, c FROM MyTable LIMIT 0 OFFSET 10")
}
- @Test(expected = classOf[SqlParserException])
+ @Test
def testLimitWithNegativeOffset(): Unit = {
- util.verifyExecPlan("SELECT a, c FROM MyTable LIMIT 10 OFFSET -1")
+ assertThatExceptionOfType(classOf[SqlParserException])
+ .isThrownBy(() => util.verifyExecPlan("SELECT a, c FROM MyTable LIMIT 10 OFFSET -1"))
}
@Test
diff --git a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/LegacySinkTest.scala b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/LegacySinkTest.scala
index a1a8b9bf05b..873b10a0909 100644
--- a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/LegacySinkTest.scala
+++ b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/LegacySinkTest.scala
@@ -19,13 +19,12 @@ package org.apache.flink.table.planner.plan.batch.sql
import org.apache.flink.api.scala._
import org.apache.flink.table.api._
-import org.apache.flink.table.api.config.TableConfigOptions
import org.apache.flink.table.api.internal.TableEnvironmentInternal
import org.apache.flink.table.planner.plan.optimize.RelNodeBlockPlanBuilder
import org.apache.flink.table.planner.utils.TableTestBase
import org.apache.flink.table.types.logical.{BigIntType, IntType}
-import org.junit.Test
+import org.junit.jupiter.api.Test
class LegacySinkTest extends TableTestBase {
diff --git a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/LegacyTableSourceTest.scala b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/LegacyTableSourceTest.scala
index e7350e2fb1b..a4da620ec0e 100644
--- a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/LegacyTableSourceTest.scala
+++ b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/LegacyTableSourceTest.scala
@@ -20,14 +20,14 @@ package org.apache.flink.table.planner.plan.batch.sql
import org.apache.flink.api.common.typeinfo.TypeInformation
import org.apache.flink.api.java.typeutils.RowTypeInfo
import org.apache.flink.table.api.{DataTypes, TableSchema, Types, ValidationException}
-import org.apache.flink.table.api.config.TableConfigOptions
import org.apache.flink.table.api.internal.TableEnvironmentInternal
import org.apache.flink.table.planner.expressions.utils.Func1
import org.apache.flink.table.planner.utils._
import org.apache.flink.table.runtime.types.TypeInfoDataTypeConverter
import org.apache.flink.types.Row
-import org.junit.{Before, Test}
+import org.assertj.core.api.Assertions.assertThatThrownBy
+import org.junit.jupiter.api.{BeforeEach, Test}
class LegacyTableSourceTest extends TableTestBase {
@@ -37,7 +37,7 @@ class LegacyTableSourceTest extends TableTestBase {
.fields(Array("a", "b", "c"), Array(DataTypes.INT(), DataTypes.BIGINT(), DataTypes.STRING()))
.build()
- @Before
+ @BeforeEach
def setup(): Unit = {
util.tableEnv
.asInstanceOf[TableEnvironmentInternal]
@@ -69,9 +69,10 @@ class LegacyTableSourceTest extends TableTestBase {
@Test
def testUnboundedStreamTableSource(): Unit = {
TestTableSource.createTemporaryTable(util.tableEnv, isBounded = false, tableSchema, "MyTable")
- thrown.expect(classOf[ValidationException])
- thrown.expectMessage("Only bounded StreamTableSource can be used in batch mode.")
- util.verifyExecPlan("SELECT * FROM MyTable")
+
+ assertThatThrownBy(() => util.verifyExecPlan("SELECT * FROM MyTable"))
+ .hasMessageContaining("Only bounded StreamTableSource can be used in batch mode.")
+ .isInstanceOf[ValidationException]
}
@Test
diff --git a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/LimitTest.scala b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/LimitTest.scala
index d7762eacd40..86fe1c7c965 100644
--- a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/LimitTest.scala
+++ b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/LimitTest.scala
@@ -21,6 +21,8 @@ import org.apache.flink.api.scala._
import org.apache.flink.table.api._
import org.apache.flink.table.connector.source.abilities.SupportsProjectionPushDown
+import org.junit.jupiter.api.BeforeEach
+
/**
* The plan of following unit test in LimitTest.xml is a bit diffirent from LegacyLimitTest.xml.
* Because the TestValuesTableSource has implemented [[SupportsProjectionPushDown]] while the
@@ -30,6 +32,7 @@ import org.apache.flink.table.connector.source.abilities.SupportsProjectionPushD
*/
class LimitTest extends LegacyLimitTest {
+ @BeforeEach
override def setup(): Unit = {
util.addTableSource[(Int, Long, String)]("MyTable", 'a, 'b, 'c)
val ddl =
diff --git a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/MultipleInputCreationTest.scala b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/MultipleInputCreationTest.scala
index 43a2944e1fe..11a8f5c5ef5 100644
--- a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/MultipleInputCreationTest.scala
+++ b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/MultipleInputCreationTest.scala
@@ -27,19 +27,18 @@ import org.apache.flink.configuration.JobManagerOptions.SchedulerType
import org.apache.flink.table.api._
import org.apache.flink.table.api.config.{ExecutionConfigOptions, OptimizerConfigOptions}
import org.apache.flink.table.planner.utils.{TableTestBase, TableTestUtil}
+import org.apache.flink.testutils.junit.extensions.parameterized.{ParameterizedTestExtension, Parameters}
-import org.junit.{Before, Test}
-import org.junit.runner.RunWith
-import org.junit.runners.Parameterized
-import org.junit.runners.Parameterized.Parameters
+import org.junit.jupiter.api.{BeforeEach, TestTemplate}
+import org.junit.jupiter.api.extension.ExtendWith
-@RunWith(classOf[Parameterized])
+@ExtendWith(Array(classOf[ParameterizedTestExtension]))
class MultipleInputCreationTest(shuffleMode: BatchShuffleMode, schedulerType: SchedulerType)
extends TableTestBase {
private val util = batchTestUtil()
- @Before
+ @BeforeEach
def before(): Unit = {
util.addTableSource[(Int, Long, String, Int)]("x", 'a, 'b, 'c, 'nx)
util.addTableSource[(Int, Long, String, Int)]("y", 'd, 'e, 'f, 'ny)
@@ -49,7 +48,7 @@ class MultipleInputCreationTest(shuffleMode: BatchShuffleMode, schedulerType: Sc
util.tableConfig.set(JobManagerOptions.SCHEDULER, schedulerType)
}
- @Test
+ @TestTemplate
def testBasicMultipleInput(): Unit = {
util.tableEnv.getConfig
.set(ExecutionConfigOptions.TABLE_EXEC_DISABLED_OPERATORS, "NestedLoopJoin,SortMergeJoin")
@@ -64,7 +63,7 @@ class MultipleInputCreationTest(shuffleMode: BatchShuffleMode, schedulerType: Sc
util.verifyExecPlan(sql)
}
- @Test
+ @TestTemplate
def testManyMultipleInputs(): Unit = {
// y z t y t
// | | | | |
@@ -102,7 +101,7 @@ class MultipleInputCreationTest(shuffleMode: BatchShuffleMode, schedulerType: Sc
util.verifyExecPlan(sql)
}
- @Test
+ @TestTemplate
def testJoinWithAggAsProbe(): Unit = {
util.tableEnv.getConfig.set(
ExecutionConfigOptions.TABLE_EXEC_DISABLED_OPERATORS,
@@ -119,7 +118,7 @@ class MultipleInputCreationTest(shuffleMode: BatchShuffleMode, schedulerType: Sc
util.verifyExecPlan(sql)
}
- @Test
+ @TestTemplate
def testKeepMultipleInputWithOneMemberForChainableSource(): Unit = {
createChainableTableSource()
util.tableEnv.getConfig
@@ -128,7 +127,7 @@ class MultipleInputCreationTest(shuffleMode: BatchShuffleMode, schedulerType: Sc
util.verifyExecPlan(sql)
}
- @Test
+ @TestTemplate
def testAvoidIncludingUnionFromInputSide(): Unit = {
util.tableEnv.getConfig
.set(ExecutionConfigOptions.TABLE_EXEC_DISABLED_OPERATORS, "HashJoin,SortMergeJoin")
@@ -141,7 +140,7 @@ class MultipleInputCreationTest(shuffleMode: BatchShuffleMode, schedulerType: Sc
util.verifyExecPlan(sql)
}
- @Test
+ @TestTemplate
def testIncludeUnionForChainableSource(): Unit = {
createChainableTableSource()
util.tableEnv.getConfig
@@ -155,7 +154,7 @@ class MultipleInputCreationTest(shuffleMode: BatchShuffleMode, schedulerType: Sc
util.verifyExecPlan(sql)
}
- @Test
+ @TestTemplate
def testAvoidIncludingCalcAfterNonChainableSource(): Unit = {
util.tableEnv.getConfig
.set(ExecutionConfigOptions.TABLE_EXEC_DISABLED_OPERATORS, "HashJoin,SortMergeJoin")
@@ -169,7 +168,7 @@ class MultipleInputCreationTest(shuffleMode: BatchShuffleMode, schedulerType: Sc
util.verifyExecPlan(sql)
}
- @Test
+ @TestTemplate
def testIncludeCalcForChainableSource(): Unit = {
createChainableTableSource()
util.tableEnv.getConfig
@@ -184,7 +183,7 @@ class MultipleInputCreationTest(shuffleMode: BatchShuffleMode, schedulerType: Sc
util.verifyExecPlan(sql)
}
- @Test
+ @TestTemplate
def testAvoidIncludingSingleton(): Unit = {
util.tableEnv.getConfig
.set(ExecutionConfigOptions.TABLE_EXEC_DISABLED_OPERATORS, "HashJoin,SortMergeJoin,HashAgg")
@@ -202,7 +201,7 @@ class MultipleInputCreationTest(shuffleMode: BatchShuffleMode, schedulerType: Sc
util.verifyExecPlan(sql)
}
- @Test
+ @TestTemplate
def testNoPriorityConstraint(): Unit = {
util.tableEnv.getConfig
.set(ExecutionConfigOptions.TABLE_EXEC_DISABLED_OPERATORS, "HashJoin,NestedLoopJoin")
@@ -215,7 +214,7 @@ class MultipleInputCreationTest(shuffleMode: BatchShuffleMode, schedulerType: Sc
util.verifyExecPlan(sql)
}
- @Test
+ @TestTemplate
def testRelatedInputs(): Unit = {
util.tableEnv.getConfig
.set(ExecutionConfigOptions.TABLE_EXEC_DISABLED_OPERATORS, "HashJoin,SortMergeJoin")
@@ -233,7 +232,7 @@ class MultipleInputCreationTest(shuffleMode: BatchShuffleMode, schedulerType: Sc
util.verifyExecPlan(sql)
}
- @Test
+ @TestTemplate
def testRelatedInputsWithAgg(): Unit = {
util.tableEnv.getConfig
.set(ExecutionConfigOptions.TABLE_EXEC_DISABLED_OPERATORS, "HashJoin,SortMergeJoin,SortAgg")
@@ -251,7 +250,7 @@ class MultipleInputCreationTest(shuffleMode: BatchShuffleMode, schedulerType: Sc
util.verifyExecPlan(sql)
}
- @Test
+ @TestTemplate
def testRemoveRedundantUnion(): Unit = {
util.tableEnv.getConfig
.set(OptimizerConfigOptions.TABLE_OPTIMIZER_REUSE_SOURCE_ENABLED, Boolean.box(false))
@@ -273,7 +272,7 @@ class MultipleInputCreationTest(shuffleMode: BatchShuffleMode, schedulerType: Sc
util.verifyExecPlan(sql)
}
- @Test
+ @TestTemplate
def testRemoveOneInputOperatorFromRoot(): Unit = {
util.tableEnv.getConfig
.set(OptimizerConfigOptions.TABLE_OPTIMIZER_REUSE_SOURCE_ENABLED, Boolean.box(false))
@@ -292,7 +291,7 @@ class MultipleInputCreationTest(shuffleMode: BatchShuffleMode, schedulerType: Sc
util.verifyExecPlan(sql)
}
- @Test
+ @TestTemplate
def testCleanUpMultipleInputWithOneMember(): Unit = {
util.tableEnv.getConfig
.set(ExecutionConfigOptions.TABLE_EXEC_DISABLED_OPERATORS, "NestedLoopJoin,SortMergeJoin")
@@ -308,7 +307,7 @@ class MultipleInputCreationTest(shuffleMode: BatchShuffleMode, schedulerType: Sc
util.verifyExecPlan(sql)
}
- @Test
+ @TestTemplate
def testKeepUsefulUnion(): Unit = {
createChainableTableSource()
util.tableEnv.getConfig
@@ -328,7 +327,7 @@ class MultipleInputCreationTest(shuffleMode: BatchShuffleMode, schedulerType: Sc
util.verifyExecPlan(sql)
}
- @Test
+ @TestTemplate
def testDeadlockCausedByExchangeInAncestor(): Unit = {
util.tableEnv.getConfig
.set(OptimizerConfigOptions.TABLE_OPTIMIZER_REUSE_SOURCE_ENABLED, Boolean.box(true))
diff --git a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/OperatorFusionCodegenTest.scala b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/OperatorFusionCodegenTest.scala
index 19e1a0b2066..02859f707f8 100644
--- a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/OperatorFusionCodegenTest.scala
+++ b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/OperatorFusionCodegenTest.scala
@@ -23,21 +23,21 @@ import org.apache.flink.table.api.config.ExecutionConfigOptions
import org.apache.flink.table.plan.stats.TableStats
import org.apache.flink.table.planner.plan.stats.FlinkStatistic
import org.apache.flink.table.planner.utils.TableTestBase
+import org.apache.flink.testutils.junit.extensions.parameterized.{ParameterizedTestExtension, Parameters}
import com.google.common.collect.ImmutableSet
-import org.junit.{Before, Test}
-import org.junit.runner.RunWith
-import org.junit.runners.Parameterized
+import org.junit.jupiter.api.{BeforeEach, TestTemplate}
+import org.junit.jupiter.api.extension.ExtendWith
import java.util
/** Tests for operator fusion codegen. */
-@RunWith(classOf[Parameterized])
+@ExtendWith(Array(classOf[ParameterizedTestExtension]))
class OperatorFusionCodegenTest(fusionCodegenEnabled: Boolean) extends TableTestBase {
private val util = batchTestUtil()
- @Before
+ @BeforeEach
def setup(): Unit = {
util.addTableSource(
"T1",
@@ -75,21 +75,21 @@ class OperatorFusionCodegenTest(fusionCodegenEnabled: Boolean) extends TableTest
Boolean.box(fusionCodegenEnabled))
}
- @Test
+ @TestTemplate
def testHashAggAsMutltipleInputRoot(): Unit = {
util.verifyExecPlan(
"SELECT a1, b1, a2, b2, COUNT(c1) FROM " +
"(SELECT * FROM T1, T2 WHERE a1 = b2) t GROUP BY a1, b1, a2, b2")
}
- @Test
+ @TestTemplate
def testLocalHashAggAsMutltipleInputRoot(): Unit = {
util.verifyExecPlan(
"SELECT a2, b2, a3, b3, COUNT(c2), AVG(d3) FROM " +
"(SELECT * FROM T2, T3 WHERE b2 = a3) t GROUP BY a2, b2, a3, b3")
}
- @Test
+ @TestTemplate
def testCalcAsMutltipleInputRoot(): Unit = {
util.verifyExecPlan(
"SELECT a1, b1, a2, b2, a3, b3, COUNT(c1) FROM " +
@@ -98,7 +98,7 @@ class OperatorFusionCodegenTest(fusionCodegenEnabled: Boolean) extends TableTest
}
object OperatorFusionCodegenTest {
- @Parameterized.Parameters(name = "fusionCodegenEnabled={0}")
+ @Parameters(name = "fusionCodegenEnabled={0}")
def parameters(): util.Collection[Boolean] = {
util.Arrays.asList(true, false)
}
diff --git a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/PartitionableSinkTest.scala b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/PartitionableSinkTest.scala
index 2d239cb0543..80ddcb839ec 100644
--- a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/PartitionableSinkTest.scala
+++ b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/PartitionableSinkTest.scala
@@ -21,7 +21,8 @@ import org.apache.flink.api.scala._
import org.apache.flink.table.api._
import org.apache.flink.table.planner.utils.TableTestBase
-import org.junit.Test
+import org.assertj.core.api.Assertions.assertThatExceptionOfType
+import org.junit.jupiter.api.Test
class PartitionableSinkTest extends TableTestBase {
@@ -66,14 +67,20 @@ class PartitionableSinkTest extends TableTestBase {
util.verifyExecPlanInsert("INSERT INTO sink PARTITION (b=1) SELECT a, c FROM MyTable")
}
- @Test(expected = classOf[ValidationException])
+ @Test
def testWrongStatic(): Unit = {
- util.verifyExecPlanInsert("INSERT INTO sink PARTITION (a=1) SELECT b, c FROM MyTable")
+ assertThatExceptionOfType(classOf[ValidationException])
+ .isThrownBy(
+ () =>
+ util.verifyExecPlanInsert("INSERT INTO sink PARTITION (a=1) SELECT b, c FROM MyTable"))
}
- @Test(expected = classOf[ValidationException])
+ @Test
def testWrongFields(): Unit = {
- util.verifyExecPlanInsert("INSERT INTO sink PARTITION (b=1) SELECT a, b, c FROM MyTable")
+ assertThatExceptionOfType(classOf[ValidationException])
+ .isThrownBy(
+ () =>
+ util.verifyExecPlanInsert("INSERT INTO sink PARTITION (b=1) SELECT a, b, c FROM MyTable"))
}
@Test
diff --git a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/PartitionableSourceTest.scala b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/PartitionableSourceTest.scala
index 007648c9e32..d2d4935e63b 100644
--- a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/PartitionableSourceTest.scala
+++ b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/PartitionableSourceTest.scala
@@ -21,22 +21,22 @@ import org.apache.flink.table.catalog.{CatalogPartitionImpl, CatalogPartitionSpe
import org.apache.flink.table.planner.expressions.utils.Func1
import org.apache.flink.table.planner.factories.TestValuesCatalog
import org.apache.flink.table.planner.utils.TableTestBase
+import org.apache.flink.testutils.junit.extensions.parameterized.{ParameterizedTestExtension, Parameters}
-import org.junit.{Before, Test}
-import org.junit.runner.RunWith
-import org.junit.runners.Parameterized
+import org.junit.jupiter.api.{BeforeEach, TestTemplate}
+import org.junit.jupiter.api.extension.ExtendWith
import java.util
import scala.collection.JavaConversions._
-@RunWith(classOf[Parameterized])
+@ExtendWith(Array(classOf[ParameterizedTestExtension]))
class PartitionableSourceTest(val sourceFetchPartitions: Boolean, val useCatalogFilter: Boolean)
extends TableTestBase {
private val util = batchTestUtil()
- @Before
+ @BeforeEach
def setup(): Unit = {
val partitionableTable =
"""
@@ -112,50 +112,50 @@ class PartitionableSourceTest(val sourceFetchPartitions: Boolean, val useCatalog
}
}
- @Test
+ @TestTemplate
def testSimplePartitionFieldPredicate1(): Unit = {
util.verifyExecPlan("SELECT * FROM PartitionableTable WHERE part1 = 'A'")
}
- @Test
+ @TestTemplate
def testPartialPartitionFieldPredicatePushDown(): Unit = {
util.verifyExecPlan(
"SELECT * FROM PartitionableTable WHERE (id > 2 OR part1 = 'A') AND part2 > 1")
}
- @Test
+ @TestTemplate
def testWithUdfAndVirtualColumn(): Unit = {
util.addFunction("MyUdf", Func1)
util.verifyExecPlan("SELECT * FROM PartitionableTable WHERE id > 2 AND MyUdf(part2) < 3")
}
- @Test
+ @TestTemplate
def testUnconvertedExpression(): Unit = {
util.verifyExecPlan("select * from PartitionableTable where trim(part1) = 'A' and part2 > 1")
}
- @Test
+ @TestTemplate
def testPushDownPartitionAndFiltersContainPartitionKeys(): Unit = {
util.verifyExecPlan(
"select * from PartitionableAndFilterableTable " +
"where part1 = 'A' and part2 > 1 and id > 1")
}
- @Test
+ @TestTemplate
def testPushDownPartitionAndFiltersContainPartitionKeysWithSingleProjection(): Unit = {
util.verifyExecPlan(
"select name from PartitionableAndFilterableTable " +
"where part1 = 'A' and part2 > 1 and id > 1")
}
- @Test
+ @TestTemplate
def testPushDownNonExistentPartition(): Unit = {
util.verifyExecPlan("SELECT * FROM PartitionableTable WHERE part2 = 4")
}
}
object PartitionableSourceTest {
- @Parameterized.Parameters(name = "sourceFetchPartitions={0}, useCatalogFilter={1}")
+ @Parameters(name = "sourceFetchPartitions={0}, useCatalogFilter={1}")
def parameters(): util.Collection[Array[Any]] = {
Seq[Array[Any]](
Array(true, false),
diff --git a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/RankTest.scala b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/RankTest.scala
index bc18eebfe0b..49ff3aaa033 100644
--- a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/RankTest.scala
+++ b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/RankTest.scala
@@ -21,8 +21,8 @@ import org.apache.flink.api.scala._
import org.apache.flink.table.api._
import org.apache.flink.table.planner.utils.TableTestBase
-import org.assertj.core.api.Assertions.assertThatThrownBy
-import org.junit.Test
+import org.assertj.core.api.Assertions.{assertThatExceptionOfType, assertThatThrownBy}
+import org.junit.jupiter.api.Test
class RankTest extends TableTestBase {
@@ -59,7 +59,7 @@ class RankTest extends TableTestBase {
"please re-check the over window statement.")
}
- @Test(expected = classOf[RuntimeException])
+ @Test
def testRowNumberWithMultiGroups(): Unit = {
val sqlQuery =
"""
@@ -67,19 +67,22 @@ class RankTest extends TableTestBase {
| ROW_NUMBER() over (partition by b) as b
| FROM MyTable
""".stripMargin
- util.verifyExecPlan(sqlQuery)
+
+ assertThatExceptionOfType(classOf[RuntimeException])
+ .isThrownBy(() => util.verifyExecPlan(sqlQuery))
}
- @Test(expected = classOf[ValidationException])
+ @Test
def testRankWithoutOrderBy(): Unit = {
val sqlQuery =
"""
|SELECT RANK() over (partition by a) FROM MyTable
""".stripMargin
- util.verifyExecPlan(sqlQuery)
+ assertThatExceptionOfType(classOf[ValidationException])
+ .isThrownBy(() => util.verifyExecPlan(sqlQuery))
}
- @Test(expected = classOf[ValidationException])
+ @Test
def testRankWithMultiGroups(): Unit = {
val sqlQuery =
"""
@@ -87,19 +90,21 @@ class RankTest extends TableTestBase {
| RANK() over (partition by b) as b
| FROM MyTable
""".stripMargin
- util.verifyExecPlan(sqlQuery)
+ assertThatExceptionOfType(classOf[ValidationException])
+ .isThrownBy(() => util.verifyExecPlan(sqlQuery))
}
- @Test(expected = classOf[ValidationException])
+ @Test
def testDenseRankWithoutOrderBy(): Unit = {
val sqlQuery =
"""
|SELECT dense_rank() over (partition by a) FROM MyTable
""".stripMargin
- util.verifyExecPlan(sqlQuery)
+ assertThatExceptionOfType(classOf[ValidationException])
+ .isThrownBy(() => util.verifyExecPlan(sqlQuery))
}
- @Test(expected = classOf[ValidationException])
+ @Test
def testDenseRankWithMultiGroups(): Unit = {
val sqlQuery =
"""
@@ -107,7 +112,8 @@ class RankTest extends TableTestBase {
| DENSE_RANK() over (partition by b) as b
| FROM MyTable
""".stripMargin
- util.verifyExecPlan(sqlQuery)
+ assertThatExceptionOfType(classOf[ValidationException])
+ .isThrownBy(() => util.verifyExecPlan(sqlQuery))
}
@Test
diff --git a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/RemoveCollationTest.scala b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/RemoveCollationTest.scala
index 1e803359eec..1abdd4e8007 100644
--- a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/RemoveCollationTest.scala
+++ b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/RemoveCollationTest.scala
@@ -29,13 +29,13 @@ import org.apache.flink.table.planner.runtime.utils.JavaUserDefinedTableFunction
import org.apache.flink.table.planner.utils.{TableFunc1, TableTestBase}
import com.google.common.collect.ImmutableSet
-import org.junit.{Before, Test}
+import org.junit.jupiter.api.{BeforeEach, Test}
class RemoveCollationTest extends TableTestBase {
private val util = batchTestUtil()
- @Before
+ @BeforeEach
def setup(): Unit = {
util.addTableSource(
"x",
diff --git a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/RemoveShuffleTest.scala b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/RemoveShuffleTest.scala
index 66839e280d9..c65f341a29a 100644
--- a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/RemoveShuffleTest.scala
+++ b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/RemoveShuffleTest.scala
@@ -26,13 +26,13 @@ import org.apache.flink.table.planner.plan.rules.physical.batch.{BatchPhysicalJo
import org.apache.flink.table.planner.plan.stats.FlinkStatistic
import org.apache.flink.table.planner.utils.{TableFunc1, TableTestBase}
-import org.junit.{Before, Test}
+import org.junit.jupiter.api.{BeforeEach, Test}
class RemoveShuffleTest extends TableTestBase {
private val util = batchTestUtil()
- @Before
+ @BeforeEach
def setup(): Unit = {
util.addTableSource(
"x",
diff --git a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/SetOperatorsTest.scala b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/SetOperatorsTest.scala
index eaa5998d73c..943e6c766e0 100644
--- a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/SetOperatorsTest.scala
+++ b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/SetOperatorsTest.scala
@@ -25,13 +25,14 @@ import org.apache.flink.table.api.config.ExecutionConfigOptions
import org.apache.flink.table.planner.plan.utils.NonPojo
import org.apache.flink.table.planner.utils.TableTestBase
-import org.junit.{Before, Test}
+import org.assertj.core.api.Assertions.assertThatExceptionOfType
+import org.junit.jupiter.api.{BeforeEach, Test}
class SetOperatorsTest extends TableTestBase {
private val util = batchTestUtil()
- @Before
+ @BeforeEach
def before(): Unit = {
util.tableEnv.getConfig.set(ExecutionConfigOptions.TABLE_EXEC_DISABLED_OPERATORS, "SortAgg")
util.addTableSource[(Int, Long, String)]("T1", 'a, 'b, 'c)
@@ -39,16 +40,19 @@ class SetOperatorsTest extends TableTestBase {
util.addTableSource[(Int, Long, Int, String, Long)]("T3", 'a, 'b, 'd, 'c, 'e)
}
- @Test(expected = classOf[ValidationException])
+ @Test
def testUnionDifferentColumnSize(): Unit = {
// must fail. Union inputs have different column size.
- util.verifyExecPlan("SELECT * FROM T1 UNION ALL SELECT * FROM T3")
+ assertThatExceptionOfType(classOf[ValidationException])
+ .isThrownBy(() => util.verifyExecPlan("SELECT * FROM T1 UNION ALL SELECT * FROM T3"))
}
- @Test(expected = classOf[ValidationException])
+ @Test
def testUnionDifferentFieldTypes(): Unit = {
// must fail. Union inputs have different field types.
- util.verifyExecPlan("SELECT a, b, c FROM T1 UNION ALL SELECT d, c, e FROM T3")
+ assertThatExceptionOfType(classOf[ValidationException])
+ .isThrownBy(
+ () => util.verifyExecPlan("SELECT a, b, c FROM T1 UNION ALL SELECT d, c, e FROM T3"))
}
@Test
@@ -56,10 +60,12 @@ class SetOperatorsTest extends TableTestBase {
util.verifyExecPlan("SELECT c FROM T1 INTERSECT ALL SELECT f FROM T2")
}
- @Test(expected = classOf[ValidationException])
+ @Test
def testIntersectDifferentFieldTypes(): Unit = {
// must fail. Intersect inputs have different field types.
- util.verifyExecPlan("SELECT a, b, c FROM T1 INTERSECT SELECT d, c, e FROM T3")
+ assertThatExceptionOfType(classOf[ValidationException])
+ .isThrownBy(
+ () => util.verifyExecPlan("SELECT a, b, c FROM T1 INTERSECT SELECT d, c, e FROM T3"))
}
@Test
@@ -67,10 +73,11 @@ class SetOperatorsTest extends TableTestBase {
util.verifyExecPlan("SELECT c FROM T1 EXCEPT ALL SELECT f FROM T2")
}
- @Test(expected = classOf[ValidationException])
+ @Test
def testMinusDifferentFieldTypes(): Unit = {
// must fail. Minus inputs have different field types.
- util.verifyExecPlan("SELECT a, b, c FROM T1 EXCEPT SELECT d, c, e FROM T3")
+ assertThatExceptionOfType(classOf[ValidationException])
+ .isThrownBy(() => util.verifyExecPlan("SELECT a, b, c FROM T1 EXCEPT SELECT d, c, e FROM T3"))
}
@Test
diff --git a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/SortLimitTest.scala b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/SortLimitTest.scala
index e3027e4e83e..92441780369 100644
--- a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/SortLimitTest.scala
+++ b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/SortLimitTest.scala
@@ -23,7 +23,7 @@ import org.apache.flink.table.api.config.ExecutionConfigOptions
import org.apache.flink.table.planner.plan.rules.physical.batch.BatchPhysicalSortRule.TABLE_EXEC_RANGE_SORT_ENABLED
import org.apache.flink.table.planner.utils.TableTestBase
-import org.junit.Test
+import org.junit.jupiter.api.Test
class SortLimitTest extends TableTestBase {
diff --git a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/SortTest.scala b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/SortTest.scala
index 9722d139d96..32149d42f9c 100644
--- a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/SortTest.scala
+++ b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/SortTest.scala
@@ -23,7 +23,7 @@ import org.apache.flink.table.api.config.ExecutionConfigOptions
import org.apache.flink.table.planner.plan.rules.physical.batch.BatchPhysicalSortRule.TABLE_EXEC_RANGE_SORT_ENABLED
import org.apache.flink.table.planner.utils.TableTestBase
-import org.junit.Test
+import org.junit.jupiter.api.Test
class SortTest extends TableTestBase {
diff --git a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/SubplanReuseTest.scala b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/SubplanReuseTest.scala
index 4bda75a5b3f..5718002822f 100644
--- a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/SubplanReuseTest.scala
+++ b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/SubplanReuseTest.scala
@@ -28,13 +28,13 @@ import org.apache.flink.table.planner.runtime.utils.JavaUserDefinedTableFunction
import org.apache.flink.table.planner.utils.TableTestBase
import org.apache.flink.table.runtime.functions.aggregate.FirstValueAggFunction
-import org.junit.{Before, Test}
+import org.junit.jupiter.api.{BeforeEach, Test}
class SubplanReuseTest extends TableTestBase {
private val util = batchTestUtil()
- @Before
+ @BeforeEach
def before(): Unit = {
util.tableEnv.getConfig
.set(OptimizerConfigOptions.TABLE_OPTIMIZER_REUSE_SUB_PLAN_ENABLED, Boolean.box(true))
diff --git a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/TableScanTest.scala b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/TableScanTest.scala
index 932f9153583..2b2e658cb3a 100644
--- a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/TableScanTest.scala
+++ b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/TableScanTest.scala
@@ -18,18 +18,18 @@
package org.apache.flink.table.planner.plan.batch.sql
import org.apache.flink.api.scala._
-import org.apache.flink.table.api
import org.apache.flink.table.api._
import org.apache.flink.table.planner.expressions.utils.Func0
import org.apache.flink.table.planner.utils.TableTestBase
-import org.junit.{Before, Test}
+import org.assertj.core.api.Assertions.assertThatThrownBy
+import org.junit.jupiter.api.{BeforeEach, Test}
class TableScanTest extends TableTestBase {
private val util = batchTestUtil()
- @Before
+ @BeforeEach
def before(): Unit = {
util.tableEnv.registerFunction("my_udf", Func0)
@@ -96,11 +96,12 @@ class TableScanTest extends TableTestBase {
| 'bounded' = 'false'
|)
""".stripMargin)
- thrown.expect(classOf[ValidationException])
- thrown.expectMessage(
- "Querying an unbounded table 'default_catalog.default_database.src' in batch mode is not " +
- "allowed. The table source is unbounded.")
- util.verifyExecPlan("SELECT * FROM src WHERE a > 1")
+
+ assertThatThrownBy(() => util.verifyExecPlan("SELECT * FROM src WHERE a > 1"))
+ .hasMessageContaining(
+ "Querying an unbounded table 'default_catalog.default_database.src' in batch mode is not " +
+ "allowed. The table source is unbounded.")
+ .isInstanceOf[ValidationException]
}
@Test
@@ -116,12 +117,13 @@ class TableScanTest extends TableTestBase {
| 'changelog-mode' = 'I,UA,UB'
|)
""".stripMargin)
- thrown.expect(classOf[TableException])
- thrown.expectMessage(
- "Querying a table in batch mode is currently only possible for INSERT-only table sources. " +
- "But the source for table 'default_catalog.default_database.src' produces other changelog " +
- "messages than just INSERT.")
- util.verifyExecPlan("SELECT * FROM src WHERE a > 1")
+
+ assertThatThrownBy(() => util.verifyExecPlan("SELECT * FROM src WHERE a > 1"))
+ .hasMessageContaining(
+ "Querying a table in batch mode is currently only possible for INSERT-only table sources. " +
+ "But the source for table 'default_catalog.default_database.src' produces other changelog " +
+ "messages than just INSERT.")
+ .isInstanceOf[TableException]
}
@Test
@@ -138,12 +140,13 @@ class TableScanTest extends TableTestBase {
| 'changelog-mode' = 'UA,D'
|)
""".stripMargin)
- thrown.expect(classOf[TableException])
- thrown.expectMessage(
- "Querying a table in batch mode is currently only possible for INSERT-only table sources. " +
- "But the source for table 'default_catalog.default_database.src' produces other changelog " +
- "messages than just INSERT.")
- util.verifyExecPlan("SELECT * FROM src WHERE a > 1")
+
+ assertThatThrownBy(() => util.verifyExecPlan("SELECT * FROM src WHERE a > 1"))
+ .hasMessageContaining(
+ "Querying a table in batch mode is currently only possible for INSERT-only table sources. " +
+ "But the source for table 'default_catalog.default_database.src' produces other changelog " +
+ "messages than just INSERT.")
+ .isInstanceOf[TableException]
}
@Test
diff --git a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/TableSinkTest.scala b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/TableSinkTest.scala
index 49a8190cb28..3a950be62bf 100644
--- a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/TableSinkTest.scala
+++ b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/TableSinkTest.scala
@@ -19,15 +19,11 @@ package org.apache.flink.table.planner.plan.batch.sql
import org.apache.flink.api.scala._
import org.apache.flink.table.api._
-import org.apache.flink.table.api.config.TableConfigOptions
-import org.apache.flink.table.planner.factories.TestValuesTableFactory
import org.apache.flink.table.planner.plan.optimize.RelNodeBlockPlanBuilder
-import org.apache.flink.table.planner.runtime.utils.BatchAbstractTestBase
-import org.apache.flink.table.planner.runtime.utils.TestData.smallData3
-import org.apache.flink.table.planner.utils.{TableTestBase, TableTestUtil}
+import org.apache.flink.table.planner.utils.TableTestBase
import org.apache.flink.table.types.logical.{BigIntType, IntType}
-import org.junit.{Assert, Test}
+import org.junit.jupiter.api.Test
class TableSinkTest extends TableTestBase {
diff --git a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/TableSourceTest.scala b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/TableSourceTest.scala
index 65ccd9b75c2..418258d0a33 100644
--- a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/TableSourceTest.scala
+++ b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/TableSourceTest.scala
@@ -20,13 +20,13 @@ package org.apache.flink.table.planner.plan.batch.sql
import org.apache.flink.table.planner.plan.optimize.RelNodeBlockPlanBuilder
import org.apache.flink.table.planner.utils._
-import org.junit.{Before, Test}
+import org.junit.jupiter.api.{BeforeEach, Test}
class TableSourceTest extends TableTestBase {
private val util = batchTestUtil()
- @Before
+ @BeforeEach
def setup(): Unit = {
val ddl =
s"""
diff --git a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/UnionTest.scala b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/UnionTest.scala
index 1646da14c53..f3b7bce4409 100644
--- a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/UnionTest.scala
+++ b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/UnionTest.scala
@@ -21,14 +21,14 @@ import org.apache.flink.api.scala._
import org.apache.flink.table.api._
import org.apache.flink.table.planner.utils.TableTestBase
-import org.junit.{Before, Test}
+import org.junit.jupiter.api.{BeforeEach, Test}
// TODO add more union case after aggregation and join supported
class UnionTest extends TableTestBase {
private val util = batchTestUtil()
- @Before
+ @BeforeEach
def before(): Unit = {
util.addTableSource[(Int, Long, String)]("MyTable1", 'a, 'b, 'c)
util.addTableSource[(Int, Long, String)]("MyTable2", 'a, 'b, 'c)
diff --git a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/ValuesTest.scala b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/ValuesTest.scala
index f8e57bb005a..6bcaedd89bc 100644
--- a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/ValuesTest.scala
+++ b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/ValuesTest.scala
@@ -19,7 +19,7 @@ package org.apache.flink.table.planner.plan.batch.sql
import org.apache.flink.table.planner.utils.TableTestBase
-import org.junit.Test
+import org.junit.jupiter.api.Test
class ValuesTest extends TableTestBase {
diff --git a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/WindowTableFunctionTest.scala b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/WindowTableFunctionTest.scala
index d7565eedb92..b8c67d9f63d 100644
--- a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/WindowTableFunctionTest.scala
+++ b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/WindowTableFunctionTest.scala
@@ -21,7 +21,8 @@ import org.apache.flink.api.scala._
import org.apache.flink.table.api._
import org.apache.flink.table.planner.utils.TableTestBase
-import org.junit.{Before, Test}
+import org.assertj.core.api.Assertions.assertThatThrownBy
+import org.junit.jupiter.api.{BeforeEach, Test}
import java.sql.Timestamp
@@ -29,7 +30,7 @@ class WindowTableFunctionTest extends TableTestBase {
private val util = batchTestUtil()
- @Before
+ @BeforeEach
def before(): Unit = {
util.addTableSource[(Timestamp, Long, Int, String)]("MyTable", 'ts, 'a, 'b, 'c)
util.addTableSource[(Int, Long, String, Int, Timestamp)]("MyTable1", 'a, 'b, 'c, 'd, 'ts)
@@ -51,12 +52,12 @@ class WindowTableFunctionTest extends TableTestBase {
|SELECT *
|FROM TABLE(TUMBLE(TABLE MyTable1, DESCRIPTOR(b), INTERVAL '15' MINUTE))
|""".stripMargin
- expectedException.expect(classOf[ValidationException])
- expectedException.expectMessage(
- "The window function TUMBLE(TABLE table_name, DESCRIPTOR(timecol), datetime interval"
- + "[, datetime interval]) requires the timecol to be TIMESTAMP or TIMESTAMP_LTZ, "
- + "but is BIGINT.")
- util.verifyExplain(sql)
+ assertThatThrownBy(() => util.verifyExplain(sql))
+ .hasMessageContaining(
+ "The window function TUMBLE(TABLE table_name, DESCRIPTOR(timecol), datetime interval"
+ + "[, datetime interval]) requires the timecol to be TIMESTAMP or TIMESTAMP_LTZ, "
+ + "but is BIGINT.")
+ .isInstanceOf[ValidationException]
}
@Test
@@ -76,9 +77,10 @@ class WindowTableFunctionTest extends TableTestBase {
|SELECT *
|FROM TABLE(TUMBLE(TABLE MyTable2, DESCRIPTOR(c), INTERVAL '15' MINUTE))
|""".stripMargin
- expectedException.expect(classOf[TableException])
- expectedException.expectMessage("Processing time Window TableFunction is not supported yet.")
- util.verifyExplain(sql)
+
+ assertThatThrownBy(() => util.verifyExplain(sql))
+ .hasMessageContaining("Processing time Window TableFunction is not supported yet.")
+ .isInstanceOf[TableException]
}
@Test
@@ -98,9 +100,10 @@ class WindowTableFunctionTest extends TableTestBase {
|SELECT *
|FROM TABLE(HOP(TABLE MyTable2, DESCRIPTOR(c), INTERVAL '1' HOUR, INTERVAL '2' HOUR))
|""".stripMargin
- expectedException.expect(classOf[TableException])
- expectedException.expectMessage("Processing time Window TableFunction is not supported yet.")
- util.verifyExplain(sql)
+
+ assertThatThrownBy(() => util.verifyExplain(sql))
+ .hasMessageContaining("Processing time Window TableFunction is not supported yet.")
+ .isInstanceOf[TableException]
}
@Test
@@ -122,9 +125,10 @@ class WindowTableFunctionTest extends TableTestBase {
|FROM TABLE(
| CUMULATE(TABLE MyTable2, DESCRIPTOR(c), INTERVAL '10' MINUTE, INTERVAL '1' HOUR))
|""".stripMargin
- expectedException.expect(classOf[TableException])
- expectedException.expectMessage("Processing time Window TableFunction is not supported yet.")
- util.verifyExplain(sql)
+
+ assertThatThrownBy(() => util.verifyExplain(sql))
+ .hasMessageContaining("Processing time Window TableFunction is not supported yet.")
+ .isInstanceOf[TableException]
}
@Test
diff --git a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/agg/AggregateTestBase.scala b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/agg/AggregateTestBase.scala
index a4d431d35f3..3b3d092d944 100644
--- a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/agg/AggregateTestBase.scala
+++ b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/agg/AggregateTestBase.scala
@@ -24,7 +24,8 @@ import org.apache.flink.table.planner.plan.utils.JavaUserDefinedAggFunctions.{Va
import org.apache.flink.table.planner.utils.{BatchTableTestUtil, TableTestBase}
import org.apache.flink.table.runtime.typeutils.DecimalDataTypeInfo
-import org.junit.Test
+import org.assertj.core.api.Assertions.assertThatThrownBy
+import org.junit.jupiter.api.TestTemplate
abstract class AggregateTestBase extends TableTestBase {
@@ -63,7 +64,7 @@ abstract class AggregateTestBase extends TableTestBase {
)
util.addTableSource[(Int, Long, String)]("MyTable1", 'a, 'b, 'c)
- @Test
+ @TestTemplate
def testAvg(): Unit = {
util.verifyRelPlanWithType("""
|SELECT AVG(`byte`),
@@ -78,7 +79,7 @@ abstract class AggregateTestBase extends TableTestBase {
""".stripMargin)
}
- @Test
+ @TestTemplate
def testSum(): Unit = {
util.verifyRelPlanWithType("""
|SELECT SUM(`byte`),
@@ -93,7 +94,7 @@ abstract class AggregateTestBase extends TableTestBase {
""".stripMargin)
}
- @Test
+ @TestTemplate
def testCount(): Unit = {
util.verifyRelPlanWithType("""
|SELECT COUNT(`byte`),
@@ -113,12 +114,12 @@ abstract class AggregateTestBase extends TableTestBase {
""".stripMargin)
}
- @Test
+ @TestTemplate
def testCountStart(): Unit = {
util.verifyRelPlanWithType("SELECT COUNT(*) FROM MyTable")
}
- @Test
+ @TestTemplate
def testCountStartWithProjectPushDown(): Unit = {
// the test values table source supports projection push down by default
util.tableEnv.executeSql("""
@@ -133,15 +134,16 @@ abstract class AggregateTestBase extends TableTestBase {
util.verifyRelPlanWithType("SELECT COUNT(*) FROM src")
}
- @Test
+ @TestTemplate
def testCannotCountOnMultiFields(): Unit = {
val sql = "SELECT b, COUNT(a, c) FROM MyTable1 GROUP BY b"
- thrown.expect(classOf[TableException])
- thrown.expectMessage("We now only support the count of one field")
- util.verifyExecPlan(sql)
+
+ assertThatThrownBy(() => util.verifyExecPlan(sql))
+ .hasMessageContaining("We now only support the count of one field")
+ .isInstanceOf[TableException]
}
- @Test
+ @TestTemplate
def testMinWithFixLengthType(): Unit = {
util.verifyRelPlanWithType("""
|SELECT MIN(`byte`),
@@ -160,12 +162,12 @@ abstract class AggregateTestBase extends TableTestBase {
""".stripMargin)
}
- @Test
+ @TestTemplate
def testMinWithVariableLengthType(): Unit = {
util.verifyRelPlanWithType("SELECT MIN(`string`) FROM MyTable")
}
- @Test
+ @TestTemplate
def testMaxWithFixLengthType(): Unit = {
util.verifyRelPlanWithType("""
|SELECT MAX(`byte`),
@@ -184,55 +186,55 @@ abstract class AggregateTestBase extends TableTestBase {
""".stripMargin)
}
- @Test
+ @TestTemplate
def testMaxWithVariableLengthType(): Unit = {
util.verifyRelPlanWithType("SELECT MAX(`string`) FROM MyTable")
}
- @Test
+ @TestTemplate
def testAggregateWithoutFunction(): Unit = {
util.verifyExecPlan("SELECT a, b FROM MyTable1 GROUP BY a, b")
}
- @Test
+ @TestTemplate
def testAggregateWithoutGroupBy(): Unit = {
util.verifyExecPlan("SELECT AVG(a), SUM(b), COUNT(c) FROM MyTable1")
}
- @Test
+ @TestTemplate
def testAggregateWithFilter(): Unit = {
util.verifyExecPlan("SELECT AVG(a), SUM(b), COUNT(c) FROM MyTable1 WHERE a = 1")
}
- @Test
+ @TestTemplate
def testAggregateWithFilterOnNestedFields(): Unit = {
util.addTableSource[(Int, Long, (Int, Long))]("MyTable2", 'a, 'b, 'c)
util.verifyExecPlan("SELECT AVG(a), SUM(b), COUNT(c), SUM(c._1) FROM MyTable2 WHERE a = 1")
}
- @Test
+ @TestTemplate
def testGroupAggregate(): Unit = {
util.verifyExecPlan("SELECT a, SUM(b), COUNT(c) FROM MyTable1 GROUP BY a")
}
- @Test
+ @TestTemplate
def testGroupAggregateWithFilter(): Unit = {
util.verifyExecPlan("SELECT a, SUM(b), count(c) FROM MyTable1 WHERE a = 1 GROUP BY a")
}
- @Test
+ @TestTemplate
def testAggNotSupportMerge(): Unit = {
util.addFunction("var_sum", new VarSum2AggFunction)
util.verifyExecPlan("SELECT b, var_sum(a) FROM MyTable1 GROUP BY b")
}
- @Test
+ @TestTemplate
def testPojoAccumulator(): Unit = {
util.addFunction("var_sum", new VarSum1AggFunction)
util.verifyExecPlan("SELECT b, var_sum(a) FROM MyTable1 GROUP BY b")
}
- @Test
+ @TestTemplate
def testGroupByWithConstantKey(): Unit = {
val sql =
"""
diff --git a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/agg/GroupWindowTest.scala b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/agg/GroupWindowTest.scala
index d0f8720a1ff..c6dcac1a54b 100644
--- a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/agg/GroupWindowTest.scala
+++ b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/agg/GroupWindowTest.scala
@@ -22,22 +22,23 @@ import org.apache.flink.table.api._
import org.apache.flink.table.api.config.OptimizerConfigOptions
import org.apache.flink.table.planner.runtime.utils.JavaUserDefinedAggFunctions.WeightedAvgWithMerge
import org.apache.flink.table.planner.utils.{AggregatePhaseStrategy, CountAggFunction, TableTestBase}
+import org.apache.flink.testutils.junit.extensions.parameterized.{ParameterizedTestExtension, Parameters}
-import org.junit.{Before, Test}
-import org.junit.runner.RunWith
-import org.junit.runners.Parameterized
+import org.assertj.core.api.Assertions.{assertThatExceptionOfType, assertThatThrownBy}
+import org.junit.jupiter.api.{BeforeEach, TestTemplate}
+import org.junit.jupiter.api.extension.ExtendWith
import java.sql.Timestamp
import java.util
import scala.collection.JavaConversions._
-@RunWith(classOf[Parameterized])
+@ExtendWith(Array(classOf[ParameterizedTestExtension]))
class GroupWindowTest(aggStrategy: AggregatePhaseStrategy) extends TableTestBase {
private val util = batchTestUtil()
- @Before
+ @BeforeEach
def before(): Unit = {
util.tableEnv.getConfig
.set(OptimizerConfigOptions.TABLE_OPTIMIZER_AGG_PHASE_STRATEGY, aggStrategy.toString)
@@ -56,59 +57,61 @@ class GroupWindowTest(aggStrategy: AggregatePhaseStrategy) extends TableTestBase
|""".stripMargin)
}
- @Test
+ @TestTemplate
def testHopWindowNoOffset(): Unit = {
val sqlQuery =
"SELECT SUM(a) AS sumA, COUNT(b) AS cntB FROM MyTable2 " +
"GROUP BY HOP(ts, INTERVAL '1' HOUR, INTERVAL '2' HOUR, TIME '10:00:00')"
- expectedException.expect(classOf[TableException])
- expectedException.expectMessage("HOP window with alignment is not supported yet.")
- util.verifyExecPlan(sqlQuery)
+ assertThatThrownBy(() => util.verifyExecPlan(sqlQuery))
+ .hasMessageContaining("HOP window with alignment is not supported yet.")
+ .isInstanceOf[TableException]
}
- @Test
+ @TestTemplate
def testSessionWindowNoOffset(): Unit = {
val sqlQuery =
"SELECT SUM(a) AS sumA, COUNT(b) AS cntB FROM MyTable2 " +
"GROUP BY SESSION(ts, INTERVAL '2' HOUR, TIME '10:00:00')"
- expectedException.expect(classOf[TableException])
- expectedException.expectMessage("SESSION window with alignment is not supported yet.")
- util.verifyExecPlan(sqlQuery)
+ assertThatThrownBy(() => util.verifyExecPlan(sqlQuery))
+ .hasMessageContaining("SESSION window with alignment is not supported yet.")
+ .isInstanceOf[TableException]
}
- @Test
+ @TestTemplate
def testVariableWindowSize(): Unit = {
- expectedException.expect(classOf[TableException])
- expectedException.expectMessage("Only constant window descriptors are supported")
- util.verifyExecPlan(
- "SELECT COUNT(*) FROM MyTable2 GROUP BY TUMBLE(ts, b * INTERVAL '1' MINUTE)")
+ assertThatThrownBy(
+ () =>
+ util.verifyExecPlan(
+ "SELECT COUNT(*) FROM MyTable2 GROUP BY TUMBLE(ts, b * INTERVAL '1' MINUTE)"))
+ .hasMessageContaining("Only constant window descriptors are supported")
+ .isInstanceOf[TableException]
}
- @Test
+ @TestTemplate
def testTumbleWindowWithInvalidUdAggArgs(): Unit = {
val weightedAvg = new WeightedAvgWithMerge
util.addFunction("weightedAvg", weightedAvg)
val sql = "SELECT weightedAvg(c, a) AS wAvg FROM MyTable2 " +
"GROUP BY TUMBLE(ts, INTERVAL '4' MINUTE)"
- expectedException.expect(classOf[ValidationException])
- expectedException.expectMessage(
- "SQL validation failed. "
+
+ assertThatThrownBy(() => util.verifyExecPlan(sql))
+ .hasMessageContaining("SQL validation failed. "
+ "Given parameters of function 'weightedAvg' do not match any signature.")
- util.verifyExecPlan(sql)
+ .isInstanceOf[ValidationException]
}
- @Test
+ @TestTemplate
def testWindowProctime(): Unit = {
val sqlQuery =
"SELECT TUMBLE_PROCTIME(ts, INTERVAL '4' MINUTE) FROM MyTable2 " +
"GROUP BY TUMBLE(ts, INTERVAL '4' MINUTE), c"
- expectedException.expect(classOf[ValidationException])
- expectedException.expectMessage("PROCTIME window property is not supported in batch queries.")
- util.verifyExecPlan(sqlQuery)
+ assertThatThrownBy(() => util.verifyExecPlan(sqlQuery))
+ .hasMessageContaining("PROCTIME window property is not supported in batch queries.")
+ .isInstanceOf[ValidationException]
}
- @Test(expected = classOf[AssertionError])
+ @TestTemplate
def testWindowAggWithGroupSets(): Unit = {
// TODO supports group sets
// currently, the optimized plan is not collect, and an exception will be thrown in code-gen
@@ -119,48 +122,50 @@ class GroupWindowTest(aggStrategy: AggregatePhaseStrategy) extends TableTestBase
|FROM MyTable1
| GROUP BY rollup(TUMBLE(ts, INTERVAL '15' MINUTE), b)
""".stripMargin
- util.verifyRelPlanNotExpected(sql, "TUMBLE(ts")
+
+ assertThatExceptionOfType(classOf[AssertionError])
+ .isThrownBy(() => util.verifyRelPlanNotExpected(sql, "TUMBLE(ts"))
}
- @Test
+ @TestTemplate
def testNoGroupingTumblingWindow(): Unit = {
val sqlQuery = "SELECT AVG(c), SUM(a) FROM MyTable GROUP BY TUMBLE(b, INTERVAL '3' SECOND)"
util.verifyExecPlan(sqlQuery)
}
- @Test
+ @TestTemplate
def testTumblingWindowSortAgg1(): Unit = {
val sqlQuery = "SELECT MAX(c) FROM MyTable1 GROUP BY a, TUMBLE(ts, INTERVAL '3' SECOND)"
util.verifyExecPlan(sqlQuery)
}
- @Test
+ @TestTemplate
def testTumblingWindowSortAgg2(): Unit = {
val sqlQuery = "SELECT AVG(c), countFun(a) FROM MyTable " +
"GROUP BY a, d, TUMBLE(b, INTERVAL '3' SECOND)"
util.verifyExecPlan(sqlQuery)
}
- @Test
+ @TestTemplate
def testTumblingWindowHashAgg1(): Unit = {
val sqlQuery = "SELECT COUNT(c) FROM MyTable1 GROUP BY a, TUMBLE(ts, INTERVAL '3' SECOND)"
util.verifyExecPlan(sqlQuery)
}
- @Test
+ @TestTemplate
def testTumblingWindowHashAgg2(): Unit = {
val sql = "SELECT AVG(c), COUNT(a) FROM MyTable GROUP BY a, d, TUMBLE(b, INTERVAL '3' SECOND)"
util.verifyExecPlan(sql)
}
- @Test
+ @TestTemplate
def testNonPartitionedTumblingWindow(): Unit = {
val sqlQuery =
"SELECT SUM(a) AS sumA, COUNT(b) AS cntB FROM MyTable2 GROUP BY TUMBLE(ts, INTERVAL '2' HOUR)"
util.verifyExecPlan(sqlQuery)
}
- @Test
+ @TestTemplate
def testPartitionedTumblingWindow(): Unit = {
val sqlQuery =
"""
@@ -176,7 +181,7 @@ class GroupWindowTest(aggStrategy: AggregatePhaseStrategy) extends TableTestBase
util.verifyExecPlan(sqlQuery)
}
- @Test
+ @TestTemplate
def testTumblingWindowWithUdAgg(): Unit = {
util.addFunction("weightedAvg", new WeightedAvgWithMerge)
val sql = "SELECT weightedAvg(b, a) AS wAvg FROM MyTable2 " +
@@ -184,16 +189,16 @@ class GroupWindowTest(aggStrategy: AggregatePhaseStrategy) extends TableTestBase
util.verifyExecPlan(sql)
}
- @Test
+ @TestTemplate
def testTumblingWindowWithProctime(): Unit = {
val sql = "select sum(a), max(b) from MyTable3 group by TUMBLE(c, INTERVAL '1' SECOND)"
- expectedException.expect(classOf[ValidationException])
- expectedException.expectMessage(
- "Window can not be defined over a proctime attribute column for batch mode")
- util.verifyExecPlan(sql)
+ assertThatThrownBy(() => util.verifyExecPlan(sql))
+ .hasMessageContaining(
+ "Window can not be defined over a proctime attribute column for batch mode")
+ .isInstanceOf[ValidationException]
}
- @Test
+ @TestTemplate
def testNoGroupingSlidingWindow(): Unit = {
val sqlQuery =
"""
@@ -206,42 +211,42 @@ class GroupWindowTest(aggStrategy: AggregatePhaseStrategy) extends TableTestBase
util.verifyExecPlan(sqlQuery)
}
- @Test
+ @TestTemplate
def testSlidingWindowSortAgg1(): Unit = {
val sqlQuery = "SELECT MAX(c) FROM MyTable1 " +
"GROUP BY a, HOP(ts, INTERVAL '3' SECOND, INTERVAL '1' HOUR)"
util.verifyExecPlan(sqlQuery)
}
- @Test
+ @TestTemplate
def testSlidingWindowSortAgg2(): Unit = {
val sqlQuery = "SELECT MAX(c) FROM MyTable1 " +
"GROUP BY b, HOP(ts, INTERVAL '0.111' SECOND(1,3), INTERVAL '1' SECOND)"
util.verifyExecPlan(sqlQuery)
}
- @Test
+ @TestTemplate
def testSlidingWindowSortAgg3(): Unit = {
val sqlQuery = "SELECT countFun(c) FROM MyTable " +
" GROUP BY a, d, HOP(b, INTERVAL '3' SECOND, INTERVAL '1' HOUR)"
util.verifyExecPlan(sqlQuery)
}
- @Test
+ @TestTemplate
def testSlidingWindowSortAggWithPaneOptimization(): Unit = {
val sqlQuery = "SELECT COUNT(c) FROM MyTable1 " +
"GROUP BY a, HOP(ts, INTERVAL '3' SECOND, INTERVAL '1' HOUR)"
util.verifyExecPlan(sqlQuery)
}
- @Test
+ @TestTemplate
def testSlidingWindowHashAgg(): Unit = {
val sqlQuery = "SELECT count(c) FROM MyTable1 " +
"GROUP BY b, HOP(ts, INTERVAL '3' SECOND, INTERVAL '1' HOUR)"
util.verifyExecPlan(sqlQuery)
}
- @Test
+ @TestTemplate
def testNonPartitionedSlidingWindow(): Unit = {
val sqlQuery =
"SELECT SUM(a) AS sumA, COUNT(b) AS cntB " +
@@ -251,7 +256,7 @@ class GroupWindowTest(aggStrategy: AggregatePhaseStrategy) extends TableTestBase
util.verifyExecPlan(sqlQuery)
}
- @Test
+ @TestTemplate
def testPartitionedSlidingWindow(): Unit = {
val sqlQuery =
"SELECT " +
@@ -267,7 +272,7 @@ class GroupWindowTest(aggStrategy: AggregatePhaseStrategy) extends TableTestBase
util.verifyExecPlan(sqlQuery)
}
- @Test
+ @TestTemplate
def testSlidingWindowWithProctime(): Unit = {
val sql =
s"""
@@ -275,22 +280,22 @@ class GroupWindowTest(aggStrategy: AggregatePhaseStrategy) extends TableTestBase
|from MyTable3
|group by HOP(c, INTERVAL '1' SECOND, INTERVAL '1' MINUTE)
|""".stripMargin
- expectedException.expect(classOf[ValidationException])
- expectedException.expectMessage(
- "Window can not be defined over a proctime attribute column for batch mode")
- util.verifyExecPlan(sql)
+ assertThatThrownBy(() => util.verifyExecPlan(sql))
+ .hasMessageContaining("Window can not be defined over a proctime attribute column for " +
+ "batch mode")
+ .isInstanceOf[ValidationException]
}
- @Test
+ @TestTemplate
// TODO session window is not supported now
def testNonPartitionedSessionWindow(): Unit = {
val sqlQuery = "SELECT COUNT(*) AS cnt FROM MyTable2 GROUP BY SESSION(ts, INTERVAL '30' MINUTE)"
- expectedException.expect(classOf[TableException])
- expectedException.expectMessage("Cannot generate a valid execution plan for the given query")
- util.verifyExecPlan(sqlQuery)
+ assertThatThrownBy(() => util.verifyExecPlan(sqlQuery))
+ .hasMessageContaining("Cannot generate a valid execution plan for the given query")
+ .isInstanceOf[TableException]
}
- @Test
+ @TestTemplate
// TODO session window is not supported now
def testPartitionedSessionWindow(): Unit = {
val sqlQuery =
@@ -304,12 +309,12 @@ class GroupWindowTest(aggStrategy: AggregatePhaseStrategy) extends TableTestBase
|FROM MyTable2
| GROUP BY SESSION(ts, INTERVAL '12' HOUR), c, d
""".stripMargin
- expectedException.expect(classOf[TableException])
- expectedException.expectMessage("Cannot generate a valid execution plan for the given query")
- util.verifyExecPlan(sqlQuery)
+ assertThatThrownBy(() => util.verifyExecPlan(sqlQuery))
+ .hasMessageContaining("Cannot generate a valid execution plan for the given query")
+ .isInstanceOf[TableException]
}
- @Test
+ @TestTemplate
def testSessionWindowWithProctime(): Unit = {
val sql =
s"""
@@ -317,13 +322,13 @@ class GroupWindowTest(aggStrategy: AggregatePhaseStrategy) extends TableTestBase
|from MyTable3
|group by SESSION(c, INTERVAL '1' MINUTE)
|""".stripMargin
- expectedException.expect(classOf[ValidationException])
- expectedException.expectMessage(
- "Window can not be defined over a proctime attribute column for batch mode")
- util.verifyExecPlan(sql)
+ assertThatThrownBy(() => util.verifyExecPlan(sql))
+ .hasMessageContaining(
+ "Window can not be defined over a proctime attribute column for batch mode")
+ .isInstanceOf[ValidationException]
}
- @Test
+ @TestTemplate
def testWindowEndOnly(): Unit = {
val sqlQuery =
"SELECT TUMBLE_END(ts, INTERVAL '4' MINUTE) FROM MyTable2 " +
@@ -331,7 +336,7 @@ class GroupWindowTest(aggStrategy: AggregatePhaseStrategy) extends TableTestBase
util.verifyExecPlan(sqlQuery)
}
- @Test
+ @TestTemplate
def testExpressionOnWindowHavingFunction(): Unit = {
val sql =
"""
@@ -346,7 +351,7 @@ class GroupWindowTest(aggStrategy: AggregatePhaseStrategy) extends TableTestBase
util.verifyExecPlan(sql)
}
- @Test
+ @TestTemplate
def testDecomposableAggFunctions(): Unit = {
val sql =
"""
@@ -363,7 +368,7 @@ class GroupWindowTest(aggStrategy: AggregatePhaseStrategy) extends TableTestBase
}
// TODO: fix the plan regression when FLINK-19668 is fixed.
- @Test
+ @TestTemplate
def testReturnTypeInferenceForWindowAgg() = {
val sql =
@@ -385,7 +390,7 @@ class GroupWindowTest(aggStrategy: AggregatePhaseStrategy) extends TableTestBase
util.verifyExecPlan(sql)
}
- @Test
+ @TestTemplate
def testWindowAggregateWithDifferentWindows(): Unit = {
// This test ensures that the LogicalWindowAggregate node' digest contains the window specs.
// This allows the planner to make the distinction between similar aggregations using different
@@ -415,7 +420,7 @@ class GroupWindowTest(aggStrategy: AggregatePhaseStrategy) extends TableTestBase
object GroupWindowTest {
- @Parameterized.Parameters(name = "aggStrategy={0}")
+ @Parameters(name = "aggStrategy={0}")
def parameters(): util.Collection[AggregatePhaseStrategy] = {
Seq[AggregatePhaseStrategy](
AggregatePhaseStrategy.AUTO,
diff --git a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/agg/GroupingSetsTest.scala b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/agg/GroupingSetsTest.scala
index 010c648433d..55cd258d578 100644
--- a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/agg/GroupingSetsTest.scala
+++ b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/agg/GroupingSetsTest.scala
@@ -22,8 +22,8 @@ import org.apache.flink.table.api._
import org.apache.flink.table.planner.plan.utils.FlinkRelOptUtil
import org.apache.flink.table.planner.utils.{TableTestBase, TableTestUtil}
-import org.junit.Assert.assertEquals
-import org.junit.Test
+import org.assertj.core.api.Assertions.assertThat
+import org.junit.jupiter.api.Test
import java.sql.Date
@@ -501,7 +501,7 @@ class GroupingSetsTest extends TableTestBase {
val table2 = util.tableEnv.sqlQuery(sql2)
val optimized1 = util.getPlanner.optimize(TableTestUtil.toRelNode(table1))
val optimized2 = util.getPlanner.optimize(TableTestUtil.toRelNode(table2))
- assertEquals(FlinkRelOptUtil.toString(optimized1), FlinkRelOptUtil.toString(optimized2))
+ assertThat(FlinkRelOptUtil.toString(optimized2)).isEqualTo(FlinkRelOptUtil.toString(optimized1))
}
}
diff --git a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/agg/HashAggregateTest.scala b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/agg/HashAggregateTest.scala
index 185b53bcada..e53e8845ac7 100644
--- a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/agg/HashAggregateTest.scala
+++ b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/agg/HashAggregateTest.scala
@@ -21,19 +21,20 @@ import org.apache.flink.table.api.TableException
import org.apache.flink.table.api.config.{ExecutionConfigOptions, OptimizerConfigOptions}
import org.apache.flink.table.planner.plan.utils.OperatorType
import org.apache.flink.table.planner.utils.AggregatePhaseStrategy
+import org.apache.flink.testutils.junit.extensions.parameterized.{ParameterizedTestExtension, Parameters}
-import org.junit.Before
-import org.junit.runner.RunWith
-import org.junit.runners.Parameterized
+import org.assertj.core.api.Assertions.assertThatThrownBy
+import org.junit.jupiter.api.{BeforeEach, TestTemplate}
+import org.junit.jupiter.api.extension.ExtendWith
import java.util
import scala.collection.JavaConversions._
-@RunWith(classOf[Parameterized])
+@ExtendWith(Array(classOf[ParameterizedTestExtension]))
class HashAggregateTest(aggStrategy: AggregatePhaseStrategy) extends AggregateTestBase {
- @Before
+ @BeforeEach
def before(): Unit = {
// disable sort agg
util.tableEnv.getConfig
@@ -42,28 +43,31 @@ class HashAggregateTest(aggStrategy: AggregatePhaseStrategy) extends AggregateTe
.set(OptimizerConfigOptions.TABLE_OPTIMIZER_AGG_PHASE_STRATEGY, aggStrategy.toString)
}
+ @TestTemplate
override def testMinWithVariableLengthType(): Unit = {
- thrown.expect(classOf[TableException])
- thrown.expectMessage("Cannot generate a valid execution plan for the given query")
- super.testMinWithVariableLengthType()
+ assertThatThrownBy(() => super.testMinWithVariableLengthType())
+ .hasMessageContaining("Cannot generate a valid execution plan for the given query")
+ .isInstanceOf[TableException]
}
+ @TestTemplate
override def testMaxWithVariableLengthType(): Unit = {
- thrown.expect(classOf[TableException])
- thrown.expectMessage("Cannot generate a valid execution plan for the given query")
- super.testMaxWithVariableLengthType()
+ assertThatThrownBy(() => super.testMaxWithVariableLengthType())
+ .hasMessageContaining("Cannot generate a valid execution plan for the given query")
+ .isInstanceOf[TableException]
}
+ @TestTemplate
override def testPojoAccumulator(): Unit = {
- thrown.expect(classOf[TableException])
- thrown.expectMessage("Cannot generate a valid execution plan for the given query")
- super.testPojoAccumulator()
+ assertThatThrownBy(() => super.testPojoAccumulator())
+ .hasMessageContaining("Cannot generate a valid execution plan for the given query")
+ .isInstanceOf[TableException]
}
}
object HashAggregateTest {
- @Parameterized.Parameters(name = "aggStrategy={0}")
+ @Parameters(name = "aggStrategy={0}")
def parameters(): util.Collection[AggregatePhaseStrategy] = {
Seq[AggregatePhaseStrategy](
AggregatePhaseStrategy.AUTO,
diff --git a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/agg/OverAggregateTest.scala b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/agg/OverAggregateTest.scala
index d0753274fc0..e95d40c8c84 100644
--- a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/agg/OverAggregateTest.scala
+++ b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/agg/OverAggregateTest.scala
@@ -22,7 +22,8 @@ import org.apache.flink.table.api._
import org.apache.flink.table.planner.runtime.utils.JavaUserDefinedAggFunctions.OverAgg0
import org.apache.flink.table.planner.utils.TableTestBase
-import org.junit.Test
+import org.assertj.core.api.Assertions.assertThatExceptionOfType
+import org.junit.jupiter.api.Test
import java.sql.Timestamp
@@ -216,7 +217,7 @@ class OverAggregateTest extends TableTestBase {
util.verifyExecPlan(sqlQuery)
}
- @Test(expected = classOf[ValidationException])
+ @Test
def testOverWindowRangeProhibitType(): Unit = {
val sqlQuery =
"""
@@ -224,7 +225,8 @@ class OverAggregateTest extends TableTestBase {
| COUNT(*) OVER (PARTITION BY c ORDER BY c RANGE BETWEEN -1 PRECEDING AND 10 FOLLOWING)
|FROM MyTable
""".stripMargin
- util.verifyExecPlan(sqlQuery)
+ assertThatExceptionOfType(classOf[ValidationException])
+ .isThrownBy(() => util.verifyExecPlan(sqlQuery))
}
@Test
@@ -253,7 +255,7 @@ class OverAggregateTest extends TableTestBase {
util.verifyExecPlan(sqlQuery)
}
- @Test(expected = classOf[ValidationException])
+ @Test
def testRowsWindowWithNegative(): Unit = {
val sqlQuery =
"""
@@ -261,7 +263,8 @@ class OverAggregateTest extends TableTestBase {
| COUNT(*) OVER (PARTITION BY c ORDER BY a ROWS BETWEEN -1 PRECEDING AND 10 FOLLOWING)
|FROM MyTable
""".stripMargin
- util.verifyExecPlan(sqlQuery)
+ assertThatExceptionOfType(classOf[ValidationException])
+ .isThrownBy(() => util.verifyExecPlan(sqlQuery))
}
@Test
@@ -320,7 +323,7 @@ class OverAggregateTest extends TableTestBase {
util.verifyExecPlan(sqlQuery)
}
- @Test(expected = classOf[RuntimeException])
+ @Test
def testDistinct(): Unit = {
val sqlQuery =
"""
@@ -328,22 +331,27 @@ class OverAggregateTest extends TableTestBase {
| OVER (PARTITION BY c ORDER BY a RANGE BETWEEN -1 FOLLOWING AND 10 FOLLOWING)
|FROM MyTable
""".stripMargin
- util.verifyExecPlan(sqlQuery)
+ assertThatExceptionOfType(classOf[RuntimeException])
+ .isThrownBy(() => util.verifyExecPlan(sqlQuery))
}
/** OVER clause is necessary for [[OverAgg0]] window function. */
- @Test(expected = classOf[ValidationException])
+ @Test
def testInvalidOverAggregation(): Unit = {
util.addFunction("overAgg", new OverAgg0)
- util.verifyExecPlan("SELECT overAgg(b, a) FROM MyTable")
+ assertThatExceptionOfType(classOf[ValidationException])
+ .isThrownBy(() => util.verifyExecPlan("SELECT overAgg(b, a) FROM MyTable"))
}
/** OVER clause is necessary for [[OverAgg0]] window function. */
- @Test(expected = classOf[ValidationException])
+ @Test
def testInvalidOverAggregation2(): Unit = {
util.addTableSource[(Int, Long, String, Timestamp)]("T", 'a, 'b, 'c, 'ts)
util.addFunction("overAgg", new OverAgg0)
- util.verifyExecPlan("SELECT overAgg(b, a) FROM T GROUP BY TUMBLE(ts, INTERVAL '2' HOUR)")
+ assertThatExceptionOfType(classOf[ValidationException])
+ .isThrownBy(
+ () =>
+ util.verifyExecPlan("SELECT overAgg(b, a) FROM T GROUP BY TUMBLE(ts, INTERVAL '2' HOUR)"))
}
}
diff --git a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/agg/SortAggregateTest.scala b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/agg/SortAggregateTest.scala
index c1fb17d3493..86dfdd18b8d 100644
--- a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/agg/SortAggregateTest.scala
+++ b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/agg/SortAggregateTest.scala
@@ -20,19 +20,19 @@ package org.apache.flink.table.planner.plan.batch.sql.agg
import org.apache.flink.table.api.config.{ExecutionConfigOptions, OptimizerConfigOptions}
import org.apache.flink.table.planner.plan.utils.OperatorType
import org.apache.flink.table.planner.utils.AggregatePhaseStrategy
+import org.apache.flink.testutils.junit.extensions.parameterized.{ParameterizedTestExtension, Parameters}
-import org.junit.{Before, Test}
-import org.junit.runner.RunWith
-import org.junit.runners.Parameterized
+import org.junit.jupiter.api.{BeforeEach, TestTemplate}
+import org.junit.jupiter.api.extension.ExtendWith
import java.util
import scala.collection.JavaConversions._
-@RunWith(classOf[Parameterized])
+@ExtendWith(Array(classOf[ParameterizedTestExtension]))
class SortAggregateTest(aggStrategy: AggregatePhaseStrategy) extends AggregateTestBase {
- @Before
+ @BeforeEach
def before(): Unit = {
// disable hash agg
util.tableEnv.getConfig
@@ -41,7 +41,7 @@ class SortAggregateTest(aggStrategy: AggregatePhaseStrategy) extends AggregateTe
.set(OptimizerConfigOptions.TABLE_OPTIMIZER_AGG_PHASE_STRATEGY, aggStrategy.toString)
}
- @Test
+ @TestTemplate
def testApproximateCountDistinct(): Unit = {
val sql =
"""
@@ -66,7 +66,7 @@ class SortAggregateTest(aggStrategy: AggregatePhaseStrategy) extends AggregateTe
object SortAggregateTest {
- @Parameterized.Parameters(name = "aggStrategy={0}")
+ @Parameters(name = "aggStrategy={0}")
def parameters(): util.Collection[AggregatePhaseStrategy] = {
Seq[AggregatePhaseStrategy](
AggregatePhaseStrategy.AUTO,
diff --git a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/join/BroadcastHashJoinTest.scala b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/join/BroadcastHashJoinTest.scala
index bab7c14257f..0f3c494ee5e 100644
--- a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/join/BroadcastHashJoinTest.scala
+++ b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/join/BroadcastHashJoinTest.scala
@@ -20,11 +20,12 @@ package org.apache.flink.table.planner.plan.batch.sql.join
import org.apache.flink.table.api.TableException
import org.apache.flink.table.api.config.{ExecutionConfigOptions, OptimizerConfigOptions}
-import org.junit.{Before, Test}
+import org.assertj.core.api.Assertions.assertThatThrownBy
+import org.junit.jupiter.api.{BeforeEach, Test}
class BroadcastHashJoinTest extends JoinTestBase {
- @Before
+ @BeforeEach
def before(): Unit = {
util.tableEnv.getConfig
.set(OptimizerConfigOptions.TABLE_OPTIMIZER_BROADCAST_JOIN_THRESHOLD, Long.box(Long.MaxValue))
@@ -35,106 +36,106 @@ class BroadcastHashJoinTest extends JoinTestBase {
@Test
override def testInnerJoinWithoutJoinPred(): Unit = {
- thrown.expect(classOf[TableException])
- thrown.expectMessage("Cannot generate a valid execution plan for the given query")
- super.testInnerJoinWithoutJoinPred()
+ assertThatThrownBy(() => super.testInnerJoinWithoutJoinPred())
+ .hasMessageContaining("Cannot generate a valid execution plan for the given query")
+ .isInstanceOf[TableException]
}
@Test
override def testLeftOuterJoinNoEquiPred(): Unit = {
- thrown.expect(classOf[TableException])
- thrown.expectMessage("Cannot generate a valid execution plan for the given query")
- super.testLeftOuterJoinNoEquiPred()
+ assertThatThrownBy(() => super.testLeftOuterJoinNoEquiPred())
+ .hasMessageContaining("Cannot generate a valid execution plan for the given query")
+ .isInstanceOf[TableException]
}
@Test
override def testLeftOuterJoinOnTrue(): Unit = {
- thrown.expect(classOf[TableException])
- thrown.expectMessage("Cannot generate a valid execution plan for the given query")
- super.testLeftOuterJoinOnTrue()
+ assertThatThrownBy(() => super.testLeftOuterJoinOnTrue())
+ .hasMessageContaining("Cannot generate a valid execution plan for the given query")
+ .isInstanceOf[TableException]
}
@Test
override def testLeftOuterJoinOnFalse(): Unit = {
- thrown.expect(classOf[TableException])
- thrown.expectMessage("Cannot generate a valid execution plan for the given query")
- super.testLeftOuterJoinOnFalse()
+ assertThatThrownBy(() => super.testLeftOuterJoinOnFalse())
+ .hasMessageContaining("Cannot generate a valid execution plan for the given query")
+ .isInstanceOf[TableException]
}
@Test
override def testRightOuterJoinOnTrue(): Unit = {
- thrown.expect(classOf[TableException])
- thrown.expectMessage("Cannot generate a valid execution plan for the given query")
- super.testRightOuterJoinOnTrue()
+ assertThatThrownBy(() => super.testRightOuterJoinOnTrue())
+ .hasMessageContaining("Cannot generate a valid execution plan for the given query")
+ .isInstanceOf[TableException]
}
@Test
override def testRightOuterJoinOnFalse(): Unit = {
- thrown.expect(classOf[TableException])
- thrown.expectMessage("Cannot generate a valid execution plan for the given query")
- super.testRightOuterJoinOnFalse()
+ assertThatThrownBy(() => super.testRightOuterJoinOnFalse())
+ .hasMessageContaining("Cannot generate a valid execution plan for the given query")
+ .isInstanceOf[TableException]
}
@Test
override def testRightOuterJoinWithNonEquiPred(): Unit = {
- thrown.expect(classOf[TableException])
- thrown.expectMessage("Cannot generate a valid execution plan for the given query")
- super.testRightOuterJoinWithNonEquiPred()
+ assertThatThrownBy(() => super.testRightOuterJoinWithNonEquiPred())
+ .hasMessageContaining("Cannot generate a valid execution plan for the given query")
+ .isInstanceOf[TableException]
}
@Test
override def testFullOuterJoinWithEquiPred(): Unit = {
- thrown.expect(classOf[TableException])
- thrown.expectMessage("Cannot generate a valid execution plan for the given query")
- super.testFullOuterJoinWithEquiPred()
+ assertThatThrownBy(() => super.testFullOuterJoinWithEquiPred())
+ .hasMessageContaining("Cannot generate a valid execution plan for the given query")
+ .isInstanceOf[TableException]
}
@Test
override def testFullOuterJoinWithEquiAndLocalPred(): Unit = {
- thrown.expect(classOf[TableException])
- thrown.expectMessage("Cannot generate a valid execution plan for the given query")
- super.testFullOuterJoinWithEquiAndLocalPred()
+ assertThatThrownBy(() => super.testFullOuterJoinWithEquiAndLocalPred())
+ .hasMessageContaining("Cannot generate a valid execution plan for the given query")
+ .isInstanceOf[TableException]
}
@Test
override def testFullOuterJoinWithEquiAndNonEquiPred(): Unit = {
- thrown.expect(classOf[TableException])
- thrown.expectMessage("Cannot generate a valid execution plan for the given query")
- super.testFullOuterJoinWithEquiAndNonEquiPred()
+ assertThatThrownBy(() => super.testFullOuterJoinWithEquiAndNonEquiPred())
+ .hasMessageContaining("Cannot generate a valid execution plan for the given query")
+ .isInstanceOf[TableException]
}
@Test
override def testFullOuterJoinWithNonEquiPred(): Unit = {
- thrown.expect(classOf[TableException])
- thrown.expectMessage("Cannot generate a valid execution plan for the given query")
- super.testFullOuterJoinWithNonEquiPred()
+ assertThatThrownBy(() => super.testFullOuterJoinWithNonEquiPred())
+ .hasMessageContaining("Cannot generate a valid execution plan for the given query")
+ .isInstanceOf[TableException]
}
@Test
override def testFullOuterJoinOnFalse(): Unit = {
- thrown.expect(classOf[TableException])
- thrown.expectMessage("Cannot generate a valid execution plan for the given query")
- super.testFullOuterJoinOnFalse()
+ assertThatThrownBy(() => super.testFullOuterJoinOnFalse())
+ .hasMessageContaining("Cannot generate a valid execution plan for the given query")
+ .isInstanceOf[TableException]
}
@Test
override def testFullOuterWithUsing(): Unit = {
- thrown.expect(classOf[TableException])
- thrown.expectMessage("Cannot generate a valid execution plan for the given query")
- super.testFullOuterWithUsing()
+ assertThatThrownBy(() => super.testFullOuterWithUsing())
+ .hasMessageContaining("Cannot generate a valid execution plan for the given query")
+ .isInstanceOf[TableException]
}
@Test
override def testFullOuterJoinOnTrue(): Unit = {
- thrown.expect(classOf[TableException])
- thrown.expectMessage("Cannot generate a valid execution plan for the given query")
- super.testFullOuterJoinOnTrue()
+ assertThatThrownBy(() => super.testFullOuterJoinOnTrue())
+ .hasMessageContaining("Cannot generate a valid execution plan for the given query")
+ .isInstanceOf[TableException]
}
@Test
override def testCrossJoin(): Unit = {
- thrown.expect(classOf[TableException])
- thrown.expectMessage("Cannot generate a valid execution plan for the given query")
- super.testCrossJoin()
+ assertThatThrownBy(() => super.testCrossJoin())
+ .hasMessageContaining("Cannot generate a valid execution plan for the given query")
+ .isInstanceOf[TableException]
}
}
diff --git a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/join/BroadcastHashSemiAntiJoinTest.scala b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/join/BroadcastHashSemiAntiJoinTest.scala
index 8eef862af55..bae55c7b394 100644
--- a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/join/BroadcastHashSemiAntiJoinTest.scala
+++ b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/join/BroadcastHashSemiAntiJoinTest.scala
@@ -20,11 +20,12 @@ package org.apache.flink.table.planner.plan.batch.sql.join
import org.apache.flink.table.api.TableException
import org.apache.flink.table.api.config.{ExecutionConfigOptions, OptimizerConfigOptions}
-import org.junit.{Before, Test}
+import org.assertj.core.api.Assertions.assertThatThrownBy
+import org.junit.jupiter.api.{BeforeEach, Test}
class BroadcastHashSemiAntiJoinTest extends SemiAntiJoinTestBase {
- @Before
+ @BeforeEach
def before(): Unit = {
util.tableEnv.getConfig
.set(OptimizerConfigOptions.TABLE_OPTIMIZER_BROADCAST_JOIN_THRESHOLD, Long.box(Long.MaxValue))
@@ -39,141 +40,141 @@ class BroadcastHashSemiAntiJoinTest extends SemiAntiJoinTestBase {
// because NestedLoopJoin(non-singleRowJoin) is disabled.
@Test
override def testNotInWithCorrelated_NonEquiCondition1(): Unit = {
- thrown.expect(classOf[TableException])
- thrown.expectMessage("Cannot generate a valid execution plan for the given query")
- super.testNotInWithCorrelated_NonEquiCondition1()
+ assertThatThrownBy(() => super.testNotInWithCorrelated_NonEquiCondition1())
+ .hasMessageContaining("Cannot generate a valid execution plan for the given query")
+ .isInstanceOf[TableException]
}
@Test
override def testNotInWithCorrelated_NonEquiCondition2(): Unit = {
- thrown.expect(classOf[TableException])
- thrown.expectMessage("Cannot generate a valid execution plan for the given query")
- super.testNotInWithCorrelated_NonEquiCondition2()
+ assertThatThrownBy(() => super.testNotInWithCorrelated_NonEquiCondition2())
+ .hasMessageContaining("Cannot generate a valid execution plan for the given query")
+ .isInstanceOf[TableException]
}
@Test
override def testInNotInExistsNotExists(): Unit = {
- thrown.expect(classOf[TableException])
- thrown.expectMessage("Cannot generate a valid execution plan for the given query")
- super.testInNotInExistsNotExists()
+ assertThatThrownBy(() => super.testInNotInExistsNotExists())
+ .hasMessageContaining("Cannot generate a valid execution plan for the given query")
+ .isInstanceOf[TableException]
}
@Test
override def testInWithUncorrelated_ComplexCondition3(): Unit = {
- thrown.expect(classOf[TableException])
- thrown.expectMessage("Cannot generate a valid execution plan for the given query")
- super.testInWithUncorrelated_ComplexCondition3()
+ assertThatThrownBy(() => super.testInWithUncorrelated_ComplexCondition3())
+ .hasMessageContaining("Cannot generate a valid execution plan for the given query")
+ .isInstanceOf[TableException]
}
@Test
override def testExistsWithUncorrelated_JoinInSubQuery(): Unit = {
- thrown.expect(classOf[TableException])
- thrown.expectMessage("Cannot generate a valid execution plan for the given query")
- super.testExistsWithUncorrelated_JoinInSubQuery()
+ assertThatThrownBy(() => super.testExistsWithUncorrelated_JoinInSubQuery())
+ .hasMessageContaining("Cannot generate a valid execution plan for the given query")
+ .isInstanceOf[TableException]
}
@Test
override def testNotExistsWithCorrelated_NonEquiCondition1(): Unit = {
- thrown.expect(classOf[TableException])
- thrown.expectMessage("Cannot generate a valid execution plan for the given query")
- super.testNotExistsWithCorrelated_NonEquiCondition1()
+ assertThatThrownBy(() => super.testNotExistsWithCorrelated_NonEquiCondition1())
+ .hasMessageContaining("Cannot generate a valid execution plan for the given query")
+ .isInstanceOf[TableException]
}
@Test
override def testNotExistsWithCorrelated_NonEquiCondition2(): Unit = {
- thrown.expect(classOf[TableException])
- thrown.expectMessage("Cannot generate a valid execution plan for the given query")
- super.testNotExistsWithCorrelated_NonEquiCondition2()
+ assertThatThrownBy(() => super.testNotExistsWithCorrelated_NonEquiCondition2())
+ .hasMessageContaining("Cannot generate a valid execution plan for the given query")
+ .isInstanceOf[TableException]
}
@Test
override def testNotInWithUncorrelated_ComplexCondition1(): Unit = {
- thrown.expect(classOf[TableException])
- thrown.expectMessage("Cannot generate a valid execution plan for the given query")
- super.testNotInWithUncorrelated_ComplexCondition1()
+ assertThatThrownBy(() => super.testNotInWithUncorrelated_ComplexCondition1())
+ .hasMessageContaining("Cannot generate a valid execution plan for the given query")
+ .isInstanceOf[TableException]
}
@Test
override def testNotInWithUncorrelated_ComplexCondition2(): Unit = {
- thrown.expect(classOf[TableException])
- thrown.expectMessage("Cannot generate a valid execution plan for the given query")
- super.testNotInWithUncorrelated_ComplexCondition2()
+ assertThatThrownBy(() => super.testNotInWithUncorrelated_ComplexCondition2())
+ .hasMessageContaining("Cannot generate a valid execution plan for the given query")
+ .isInstanceOf[TableException]
}
@Test
override def testNotInWithUncorrelated_ComplexCondition3(): Unit = {
- thrown.expect(classOf[TableException])
- thrown.expectMessage("Cannot generate a valid execution plan for the given query")
- super.testNotInWithUncorrelated_ComplexCondition3()
+ assertThatThrownBy(() => super.testNotInWithUncorrelated_ComplexCondition3())
+ .hasMessageContaining("Cannot generate a valid execution plan for the given query")
+ .isInstanceOf[TableException]
}
@Test
override def testExistsWithCorrelated_NonEquiCondition1(): Unit = {
- thrown.expect(classOf[TableException])
- thrown.expectMessage("Cannot generate a valid execution plan for the given query")
- super.testExistsWithCorrelated_NonEquiCondition1()
+ assertThatThrownBy(() => super.testExistsWithCorrelated_NonEquiCondition1())
+ .hasMessageContaining("Cannot generate a valid execution plan for the given query")
+ .isInstanceOf[TableException]
}
@Test
override def testExistsWithCorrelated_NonEquiCondition2(): Unit = {
- thrown.expect(classOf[TableException])
- thrown.expectMessage("Cannot generate a valid execution plan for the given query")
- super.testExistsWithCorrelated_NonEquiCondition2()
+ assertThatThrownBy(() => super.testExistsWithCorrelated_NonEquiCondition2())
+ .hasMessageContaining("Cannot generate a valid execution plan for the given query")
+ .isInstanceOf[TableException]
}
@Test
override def testMultiExistsWithCorrelate1(): Unit = {
- thrown.expect(classOf[TableException])
- thrown.expectMessage("Cannot generate a valid execution plan for the given query")
- super.testMultiExistsWithCorrelate1()
+ assertThatThrownBy(() => super.testMultiExistsWithCorrelate1())
+ .hasMessageContaining("Cannot generate a valid execution plan for the given query")
+ .isInstanceOf[TableException]
}
@Test
override def testNotInWithUncorrelated_MultiFields(): Unit = {
- thrown.expect(classOf[TableException])
- thrown.expectMessage("Cannot generate a valid execution plan for the given query")
- super.testNotInWithUncorrelated_MultiFields()
+ assertThatThrownBy(() => super.testNotInWithUncorrelated_MultiFields())
+ .hasMessageContaining("Cannot generate a valid execution plan for the given query")
+ .isInstanceOf[TableException]
}
@Test
override def testMultiNotInWithCorrelated(): Unit = {
- thrown.expect(classOf[TableException])
- thrown.expectMessage("Cannot generate a valid execution plan for the given query")
- super.testMultiNotInWithCorrelated()
+ assertThatThrownBy(() => super.testMultiNotInWithCorrelated())
+ .hasMessageContaining("Cannot generate a valid execution plan for the given query")
+ .isInstanceOf[TableException]
}
@Test
override def testInWithCorrelated_ComplexCondition3(): Unit = {
- thrown.expect(classOf[TableException])
- thrown.expectMessage("Cannot generate a valid execution plan for the given query")
- super.testInWithCorrelated_ComplexCondition3()
+ assertThatThrownBy(() => super.testInWithCorrelated_ComplexCondition3())
+ .hasMessageContaining("Cannot generate a valid execution plan for the given query")
+ .isInstanceOf[TableException]
}
@Test
override def testNotInWithUncorrelated_SimpleCondition1(): Unit = {
- thrown.expect(classOf[TableException])
- thrown.expectMessage("Cannot generate a valid execution plan for the given query")
- super.testNotInWithUncorrelated_SimpleCondition1()
+ assertThatThrownBy(() => super.testNotInWithUncorrelated_SimpleCondition1())
+ .hasMessageContaining("Cannot generate a valid execution plan for the given query")
+ .isInstanceOf[TableException]
}
@Test
override def testNotInWithUncorrelated_SimpleCondition2(): Unit = {
- thrown.expect(classOf[TableException])
- thrown.expectMessage("Cannot generate a valid execution plan for the given query")
- super.testNotInWithUncorrelated_SimpleCondition2()
+ assertThatThrownBy(() => super.testNotInWithUncorrelated_SimpleCondition2())
+ .hasMessageContaining("Cannot generate a valid execution plan for the given query")
+ .isInstanceOf[TableException]
}
@Test
override def testNotInWithUncorrelated_SimpleCondition3(): Unit = {
- thrown.expect(classOf[TableException])
- thrown.expectMessage("Cannot generate a valid execution plan for the given query")
- super.testNotInWithUncorrelated_SimpleCondition3()
+ assertThatThrownBy(() => super.testNotInWithUncorrelated_SimpleCondition3())
+ .hasMessageContaining("Cannot generate a valid execution plan for the given query")
+ .isInstanceOf[TableException]
}
@Test
override def testInWithUncorrelated_JoinInSubQuery(): Unit = {
- thrown.expect(classOf[TableException])
- thrown.expectMessage("Cannot generate a valid execution plan for the given query")
- super.testInWithUncorrelated_JoinInSubQuery()
+ assertThatThrownBy(() => super.testInWithUncorrelated_JoinInSubQuery())
+ .hasMessageContaining("Cannot generate a valid execution plan for the given query")
+ .isInstanceOf[TableException]
}
}
diff --git a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/join/JoinReorderTest.scala b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/join/JoinReorderTest.scala
index 8b00f7112eb..2649202ed7d 100644
--- a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/join/JoinReorderTest.scala
+++ b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/join/JoinReorderTest.scala
@@ -19,12 +19,12 @@ package org.apache.flink.table.planner.plan.batch.sql.join
import org.apache.flink.table.planner.plan.common.JoinReorderTestBase
import org.apache.flink.table.planner.utils.TableTestUtil
+import org.apache.flink.testutils.junit.extensions.parameterized.ParameterizedTestExtension
-import org.junit.runner.RunWith
-import org.junit.runners.Parameterized
+import org.junit.jupiter.api.extension.ExtendWith
/** The plan test for join reorder in batch mode. */
-@RunWith(classOf[Parameterized])
+@ExtendWith(Array(classOf[ParameterizedTestExtension]))
class JoinReorderTest(isBushyJoinReorder: Boolean) extends JoinReorderTestBase(isBushyJoinReorder) {
override protected def getTableTestUtil: TableTestUtil = batchTestUtil()
}
diff --git a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/join/JoinTestBase.scala b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/join/JoinTestBase.scala
index 4f412e21d25..f4c0301d13a 100644
--- a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/join/JoinTestBase.scala
+++ b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/join/JoinTestBase.scala
@@ -21,7 +21,8 @@ import org.apache.flink.api.scala._
import org.apache.flink.table.api._
import org.apache.flink.table.planner.utils.{BatchTableTestUtil, TableTestBase}
-import org.junit.Test
+import org.assertj.core.api.Assertions.assertThatExceptionOfType
+import org.junit.jupiter.api.Test
abstract class JoinTestBase extends TableTestBase {
@@ -29,9 +30,10 @@ abstract class JoinTestBase extends TableTestBase {
util.addTableSource[(Int, Long, String)]("MyTable1", 'a, 'b, 'c)
util.addTableSource[(Int, Long, Int, String, Long)]("MyTable2", 'd, 'e, 'f, 'g, 'h)
- @Test(expected = classOf[ValidationException])
+ @Test
def testJoinNonExistingKey(): Unit = {
- util.verifyExecPlan("SELECT c, g FROM MyTable1, MyTable2 WHERE foo = e")
+ assertThatExceptionOfType(classOf[ValidationException])
+ .isThrownBy(() => util.verifyExecPlan("SELECT c, g FROM MyTable1, MyTable2 WHERE foo = e"))
}
@Test
@@ -60,16 +62,18 @@ abstract class JoinTestBase extends TableTestBase {
util.verifyExecPlan("SELECT d, e, f FROM MyTable1 LEFT JOIN MyTable2 ON a = d where d = null")
}
- @Test(expected = classOf[TableException])
+ @Test
def testJoinNonMatchingKeyTypes(): Unit = {
// INTEGER and VARCHAR(65536) does not have common type now
- util.verifyExecPlan("SELECT c, g FROM MyTable1, MyTable2 WHERE a = g")
+ assertThatExceptionOfType(classOf[TableException])
+ .isThrownBy(() => util.verifyExecPlan("SELECT c, g FROM MyTable1, MyTable2 WHERE a = g"))
}
- @Test(expected = classOf[ValidationException])
+ @Test
def testJoinWithAmbiguousFields(): Unit = {
util.addTableSource[(Int, Long, String)]("MyTable0", 'a0, 'b0, 'c)
- util.verifyExecPlan("SELECT a, c FROM MyTable1, MyTable0 WHERE a = a0")
+ assertThatExceptionOfType(classOf[ValidationException])
+ .isThrownBy(() => util.verifyExecPlan("SELECT c FROM MyTable1, MyTable0 WHERE a = a0"))
}
@Test
diff --git a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/join/LookupJoinTest.scala b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/join/LookupJoinTest.scala
index 080f3654f25..7121e02d723 100644
--- a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/join/LookupJoinTest.scala
+++ b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/plan/batch/sql/join/LookupJoinTest.scala
@@ -24,24 +24,26 @@ import org.apache.flink.table.planner.plan.optimize.program.FlinkBatchProgram
import org.apache.flink.table.planner.plan.stream.sql.join.TestTemporalTable
import org.apache.flink.table.planner.runtime.utils.JavaUserDefinedScalarFunctions.PythonScalarFunction
import org.apache.flink.table.planner.utils.TableTestBase
+import org.apache.flink.testutils.junit.extensions.parameterized.{ParameterizedTestExtension, Parameters}
... 13160 lines suppressed ...
(flink) 02/08: [FLINK-33023][table-planner][JUnit5 Migration] Module: flink-table-planner/api (TableTestBase)
Posted by le...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
leonard pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/flink.git
commit bf6afc3d52eeb0ec31d483a7cb9e746570116fb3
Author: Jiabao Sun <ji...@xtransfer.cn>
AuthorDate: Tue Sep 12 14:46:35 2023 +0800
[FLINK-33023][table-planner][JUnit5 Migration] Module: flink-table-planner/api (TableTestBase)
---
.../validation/MatchRecognizeValidationTest.java | 188 +++++++++++----------
.../apache/flink/table/api/batch/ExplainTest.scala | 32 ++--
.../flink/table/api/stream/ExplainTest.scala | 32 ++--
.../sql/validation/OverWindowValidationTest.scala | 13 +-
4 files changed, 135 insertions(+), 130 deletions(-)
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/api/batch/sql/validation/MatchRecognizeValidationTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/api/batch/sql/validation/MatchRecognizeValidationTest.java
index cb40481db8d..c0ca9fbf975 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/api/batch/sql/validation/MatchRecognizeValidationTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/api/batch/sql/validation/MatchRecognizeValidationTest.java
@@ -26,40 +26,40 @@ import org.apache.flink.table.planner.plan.utils.JavaUserDefinedAggFunctions.Wei
import org.apache.flink.table.planner.runtime.utils.JavaUserDefinedScalarFunctions.PythonScalarFunction;
import org.apache.flink.table.planner.utils.TableTestBase;
import org.apache.flink.table.planner.utils.TableTestUtil;
+import org.apache.flink.testutils.junit.extensions.parameterized.Parameter;
+import org.apache.flink.testutils.junit.extensions.parameterized.ParameterizedTestExtension;
+import org.apache.flink.testutils.junit.extensions.parameterized.Parameters;
import org.apache.calcite.sql.SqlMatchRecognize;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.ExpectedException;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.TestTemplate;
+import org.junit.jupiter.api.extension.ExtendWith;
import java.util.Arrays;
import java.util.Collection;
+import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
+
/** Validation test for {@link SqlMatchRecognize}. */
-@RunWith(Parameterized.class)
-public class MatchRecognizeValidationTest extends TableTestBase {
+@ExtendWith(ParameterizedTestExtension.class)
+class MatchRecognizeValidationTest extends TableTestBase {
private static final String STREAM = "stream";
private static final String BATCH = "batch";
- @Parameterized.Parameter public String mode;
+ @Parameter private String mode;
- @Parameterized.Parameters(name = "mode = {0}")
- public static Collection<String> parameters() {
+ @Parameters(name = "mode = {0}")
+ private static Collection<String> parameters() {
return Arrays.asList(STREAM, BATCH);
}
- @Rule public ExpectedException expectedException = ExpectedException.none();
-
private TableTestUtil util;
private TableEnvironment tEnv;
- @Before
- public void setup() {
+ @BeforeEach
+ void setup() {
util =
STREAM.equals(mode)
? streamTestUtil(TableConfig.getDefault())
@@ -86,32 +86,31 @@ public class MatchRecognizeValidationTest extends TableTestBase {
+ ")");
}
- @After
- public void after() {
+ @AfterEach
+ void after() {
util.getTableEnv().executeSql("DROP TABLE Ticker");
util.getTableEnv().executeSql("DROP TABLE MyTable");
}
/** Function 'MATCH_ROWTIME()' can only be used in MATCH_RECOGNIZE. */
- @Test(expected = ValidationException.class)
- public void testMatchRowTimeInSelect() {
+ @TestTemplate
+ void testMatchRowTimeInSelect() {
String sql = "SELECT MATCH_ROWTIME() FROM MyTable";
- util.verifyExplain(sql);
+ assertThatExceptionOfType(ValidationException.class)
+ .isThrownBy(() -> util.verifyExplain(sql));
}
/** Function 'MATCH_PROCTIME()' can only be used in MATCH_RECOGNIZE. */
- @Test(expected = ValidationException.class)
- public void testMatchProcTimeInSelect() {
+ @TestTemplate
+ void testMatchProcTimeInSelect() {
String sql = "SELECT MATCH_PROCTIME() FROM MyTable";
- util.verifyExplain(sql);
+ assertThatExceptionOfType(ValidationException.class)
+ .isThrownBy(() -> util.verifyExplain(sql));
}
- @Test
- public void testSortProcessingTimeDesc() {
+ @TestTemplate
+ void testSortProcessingTimeDesc() {
if (STREAM.equals(mode)) {
- expectedException.expect(TableException.class);
- expectedException.expectMessage(
- "Primary sort order of a streaming table must be ascending on time.");
String sqlQuery =
"SELECT *\n"
+ "FROM Ticker\n"
@@ -123,16 +122,16 @@ public class MatchRecognizeValidationTest extends TableTestBase {
+ " DEFINE\n"
+ " A AS A.symbol = 'a'\n"
+ ") AS T";
- tEnv.executeSql(sqlQuery);
+ assertThatExceptionOfType(TableException.class)
+ .isThrownBy(() -> tEnv.executeSql(sqlQuery))
+ .withMessageContaining(
+ "Primary sort order of a streaming table must be ascending on time.");
}
}
- @Test
- public void testSortProcessingTimeSecondaryField() {
+ @TestTemplate
+ void testSortProcessingTimeSecondaryField() {
if (STREAM.equals(mode)) {
- expectedException.expect(TableException.class);
- expectedException.expectMessage(
- "You must specify either rowtime or proctime for order by as the first one.");
String sqlQuery =
"SELECT *\n"
+ "FROM Ticker\n"
@@ -144,16 +143,16 @@ public class MatchRecognizeValidationTest extends TableTestBase {
+ " DEFINE\n"
+ " A AS A.symbol = 'a'\n"
+ ") AS T";
- tEnv.executeSql(sqlQuery);
+ assertThatExceptionOfType(TableException.class)
+ .isThrownBy(() -> tEnv.executeSql(sqlQuery))
+ .withMessageContaining(
+ "You must specify either rowtime or proctime for order by as the first one.");
}
}
- @Test
- public void testSortNoOrder() {
+ @TestTemplate
+ void testSortNoOrder() {
if (STREAM.equals(mode)) {
- expectedException.expect(TableException.class);
- expectedException.expectMessage(
- "You must specify either rowtime or proctime for order by.");
String sqlQuery =
"SELECT *\n"
+ "FROM Ticker\n"
@@ -164,16 +163,16 @@ public class MatchRecognizeValidationTest extends TableTestBase {
+ " DEFINE\n"
+ " A AS A.symbol = 'a'\n"
+ ") AS T";
- tEnv.executeSql(sqlQuery);
+ assertThatExceptionOfType(TableException.class)
+ .isThrownBy(() -> tEnv.executeSql(sqlQuery))
+ .withMessageContaining(
+ "You must specify either rowtime or proctime for order by.");
}
}
- @Test
- public void testUpdatesInUpstreamOperatorNotSupported() {
+ @TestTemplate
+ void testUpdatesInUpstreamOperatorNotSupported() {
if (STREAM.equals(mode)) {
- expectedException.expect(TableException.class);
- expectedException.expectMessage(
- "Match Recognize doesn't support consuming update changes which is produced by node GroupAggregate(");
String sqlQuery =
"SELECT *\n"
+ "FROM (SELECT DISTINCT * FROM Ticker)\n"
@@ -186,14 +185,15 @@ public class MatchRecognizeValidationTest extends TableTestBase {
+ " DEFINE\n"
+ " A AS A.symbol = 'a'\n"
+ ") AS T";
- tEnv.executeSql(sqlQuery);
+ assertThatExceptionOfType(TableException.class)
+ .isThrownBy(() -> tEnv.executeSql(sqlQuery))
+ .withMessageContaining(
+ "Match Recognize doesn't support consuming update changes which is produced by node GroupAggregate(");
}
}
- @Test
- public void testAggregatesOnMultiplePatternVariablesNotSupported() {
- expectedException.expect(ValidationException.class);
- expectedException.expectMessage("SQL validation failed.");
+ @TestTemplate
+ void testAggregatesOnMultiplePatternVariablesNotSupported() {
String sqlQuery =
"SELECT *\n"
+ "FROM Ticker\n"
@@ -205,13 +205,13 @@ public class MatchRecognizeValidationTest extends TableTestBase {
+ " DEFINE\n"
+ " A AS A.symbol = 'a'\n"
+ ") AS T";
- tEnv.executeSql(sqlQuery);
+ assertThatExceptionOfType(ValidationException.class)
+ .isThrownBy(() -> tEnv.executeSql(sqlQuery))
+ .withMessageContaining("SQL validation failed.");
}
- @Test
- public void testAggregatesOnMultiplePatternVariablesNotSupportedInUDAGs() {
- expectedException.expect(ValidationException.class);
- expectedException.expectMessage("Aggregation must be applied to a single pattern variable");
+ @TestTemplate
+ void testAggregatesOnMultiplePatternVariablesNotSupportedInUDAGs() {
util.addTemporarySystemFunction("weightedAvg", new WeightedAvg());
String sqlQuery =
"SELECT *\n"
@@ -224,13 +224,13 @@ public class MatchRecognizeValidationTest extends TableTestBase {
+ " DEFINE\n"
+ " A AS A.symbol = 'a'\n"
+ ") AS T";
- tEnv.executeSql(sqlQuery);
+ assertThatExceptionOfType(ValidationException.class)
+ .isThrownBy(() -> tEnv.executeSql(sqlQuery))
+ .withMessageContaining("Aggregation must be applied to a single pattern variable");
}
- @Test
- public void testValidatingAmbiguousColumns() {
- expectedException.expect(ValidationException.class);
- expectedException.expectMessage("Columns ambiguously defined: {symbol, price}");
+ @TestTemplate
+ void testValidatingAmbiguousColumns() {
String sqlQuery =
"SELECT *\n"
+ "FROM Ticker\n"
@@ -244,7 +244,9 @@ public class MatchRecognizeValidationTest extends TableTestBase {
+ " DEFINE\n"
+ " A AS A.symbol = 'a'\n"
+ ") AS T";
- tEnv.executeSql(sqlQuery);
+ assertThatExceptionOfType(ValidationException.class)
+ .isThrownBy(() -> tEnv.executeSql(sqlQuery))
+ .withMessageContaining("Columns ambiguously defined: {symbol, price}");
}
// ***************************************************************************************
@@ -253,11 +255,8 @@ public class MatchRecognizeValidationTest extends TableTestBase {
// ***************************************************************************************
/** Python Function can not be used in MATCH_RECOGNIZE for now. */
- @Test
- public void testMatchPythonFunction() {
- expectedException.expect(TableException.class);
- expectedException.expectMessage(
- "Python Function can not be used in MATCH_RECOGNIZE for now.");
+ @TestTemplate
+ void testMatchPythonFunction() {
util.addTemporarySystemFunction("pyFunc", new PythonScalarFunction("pyFunc"));
String sql =
"SELECT T.aa as ta\n"
@@ -272,13 +271,14 @@ public class MatchRecognizeValidationTest extends TableTestBase {
+ " A AS a = 1,\n"
+ " B AS b = 'b'\n"
+ ") AS T";
- util.verifyExplain(sql);
+ assertThatExceptionOfType(TableException.class)
+ .isThrownBy(() -> tEnv.executeSql(sql))
+ .withMessageContaining(
+ "Python Function can not be used in MATCH_RECOGNIZE for now.");
}
- @Test
- public void testAllRowsPerMatch() {
- expectedException.expect(TableException.class);
- expectedException.expectMessage("All rows per match mode is not supported yet.");
+ @TestTemplate
+ void testAllRowsPerMatch() {
String sqlQuery =
"SELECT *\n"
+ "FROM Ticker\n"
@@ -291,15 +291,13 @@ public class MatchRecognizeValidationTest extends TableTestBase {
+ " DEFINE\n"
+ " A AS A.symbol = 'a'\n"
+ ") AS T";
- tEnv.executeSql(sqlQuery);
+ assertThatExceptionOfType(TableException.class)
+ .isThrownBy(() -> tEnv.executeSql(sqlQuery))
+ .withMessageContaining("All rows per match mode is not supported yet.");
}
- @Test
- public void testGreedyQuantifierAtTheEndIsNotSupported() {
- expectedException.expect(TableException.class);
- expectedException.expectMessage(
- "Greedy quantifiers are not allowed as the last element of a "
- + "Pattern yet. Finish your pattern with either a simple variable or reluctant quantifier.");
+ @TestTemplate
+ void testGreedyQuantifierAtTheEndIsNotSupported() {
String sqlQuery =
"SELECT *\n"
+ "FROM Ticker\n"
@@ -311,15 +309,15 @@ public class MatchRecognizeValidationTest extends TableTestBase {
+ " DEFINE\n"
+ " A AS A.symbol = 'a'\n"
+ ") AS T";
- tEnv.executeSql(sqlQuery);
+ assertThatExceptionOfType(TableException.class)
+ .isThrownBy(() -> tEnv.executeSql(sqlQuery))
+ .withMessageContaining(
+ "Greedy quantifiers are not allowed as the last element of a "
+ + "Pattern yet. Finish your pattern with either a simple variable or reluctant quantifier.");
}
- @Test
- public void testPatternsProducingEmptyMatchesAreNotSupported() {
- expectedException.expect(TableException.class);
- expectedException.expectMessage(
- "Patterns that can produce empty matches are not supported. "
- + "There must be at least one non-optional state.");
+ @TestTemplate
+ void testPatternsProducingEmptyMatchesAreNotSupported() {
String sqlQuery =
"SELECT *\n"
+ "FROM Ticker\n"
@@ -331,13 +329,15 @@ public class MatchRecognizeValidationTest extends TableTestBase {
+ " DEFINE\n"
+ " A AS A.symbol = 'a'\n"
+ ") AS T";
- tEnv.executeSql(sqlQuery);
+ assertThatExceptionOfType(TableException.class)
+ .isThrownBy(() -> tEnv.executeSql(sqlQuery))
+ .withMessageContaining(
+ "Patterns that can produce empty matches are not supported. "
+ + "There must be at least one non-optional state.");
}
- @Test
- public void testDistinctAggregationsNotSupported() {
- expectedException.expect(ValidationException.class);
- expectedException.expectMessage("SQL validation failed.");
+ @TestTemplate
+ void testDistinctAggregationsNotSupported() {
String sqlQuery =
"SELECT *\n"
+ "FROM Ticker\n"
@@ -349,6 +349,8 @@ public class MatchRecognizeValidationTest extends TableTestBase {
+ " DEFINE\n"
+ " A AS A.symbol = 'a'\n"
+ ") AS T";
- tEnv.executeSql(sqlQuery);
+ assertThatExceptionOfType(ValidationException.class)
+ .isThrownBy(() -> tEnv.executeSql(sqlQuery))
+ .withMessageContaining("SQL validation failed.");
}
}
diff --git a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/api/batch/ExplainTest.scala b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/api/batch/ExplainTest.scala
index e6ed0bce82f..715bee95477 100644
--- a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/api/batch/ExplainTest.scala
+++ b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/api/batch/ExplainTest.scala
@@ -23,12 +23,12 @@ import org.apache.flink.table.api.config.ExecutionConfigOptions
import org.apache.flink.table.api.internal.TableEnvironmentInternal
import org.apache.flink.table.planner.utils.TableTestBase
import org.apache.flink.table.types.logical.{BigIntType, IntType, VarCharType}
+import org.apache.flink.testutils.junit.extensions.parameterized.{ParameterizedTestExtension, Parameters}
-import org.junit.{Before, Test}
-import org.junit.runner.RunWith
-import org.junit.runners.Parameterized
+import org.junit.jupiter.api.{BeforeEach, TestTemplate}
+import org.junit.jupiter.api.extension.ExtendWith
-@RunWith(classOf[Parameterized])
+@ExtendWith(Array(classOf[ParameterizedTestExtension]))
class ExplainTest(extended: Boolean) extends TableTestBase {
private val extraDetails = if (extended) {
@@ -46,33 +46,33 @@ class ExplainTest(extended: Boolean) extends TableTestBase {
val LONG = new BigIntType()
val INT = new IntType()
- @Before
+ @BeforeEach
def before(): Unit = {
util.tableEnv.getConfig
.set(ExecutionConfigOptions.TABLE_EXEC_RESOURCE_DEFAULT_PARALLELISM, Int.box(4))
}
- @Test
+ @TestTemplate
def testExplainWithTableSourceScan(): Unit = {
util.verifyExplain("SELECT * FROM MyTable", extraDetails: _*)
}
- @Test
+ @TestTemplate
def testExplainWithDataStreamScan(): Unit = {
util.verifyExplain("SELECT * FROM MyTable1", extraDetails: _*)
}
- @Test
+ @TestTemplate
def testExplainWithFilter(): Unit = {
util.verifyExplain("SELECT * FROM MyTable1 WHERE mod(a, 2) = 0", extraDetails: _*)
}
- @Test
+ @TestTemplate
def testExplainWithAgg(): Unit = {
util.verifyExplain("SELECT COUNT(*) FROM MyTable1 GROUP BY a", extraDetails: _*)
}
- @Test
+ @TestTemplate
def testExplainWithJoin(): Unit = {
// TODO support other join operators when them are supported
util.tableEnv.getConfig
@@ -80,24 +80,24 @@ class ExplainTest(extended: Boolean) extends TableTestBase {
util.verifyExplain("SELECT a, b, c, e, f FROM MyTable1, MyTable2 WHERE a = d", extraDetails: _*)
}
- @Test
+ @TestTemplate
def testExplainWithUnion(): Unit = {
util.verifyExplain("SELECT * FROM MyTable1 UNION ALL SELECT * FROM MyTable2", extraDetails: _*)
}
- @Test
+ @TestTemplate
def testExplainWithSort(): Unit = {
util.verifyExplain("SELECT * FROM MyTable1 ORDER BY a LIMIT 5", extraDetails: _*)
}
- @Test
+ @TestTemplate
def testExplainWithSingleSink(): Unit = {
val table = util.tableEnv.sqlQuery("SELECT * FROM MyTable1 WHERE a > 10")
val sink = util.createCollectTableSink(Array("a", "b", "c"), Array(INT, LONG, STRING))
util.verifyExplainInsert(table, sink, "sink", extraDetails: _*)
}
- @Test
+ @TestTemplate
def testExplainWithMultiSinks(): Unit = {
val stmtSet = util.tableEnv.createStatementSet()
val table = util.tableEnv.sqlQuery("SELECT a, COUNT(*) AS cnt FROM MyTable1 GROUP BY a")
@@ -116,7 +116,7 @@ class ExplainTest(extended: Boolean) extends TableTestBase {
util.verifyExplain(stmtSet, extraDetails: _*)
}
- @Test
+ @TestTemplate
def testExplainMultipleInput(): Unit = {
util.tableEnv.getConfig
.set(ExecutionConfigOptions.TABLE_EXEC_DISABLED_OPERATORS, "NestedLoopJoin,SortMergeJoin")
@@ -133,7 +133,7 @@ class ExplainTest(extended: Boolean) extends TableTestBase {
}
object ExplainTest {
- @Parameterized.Parameters(name = "extended={0}")
+ @Parameters(name = "extended={0}")
def parameters(): java.util.Collection[Boolean] = {
java.util.Arrays.asList(true, false)
}
diff --git a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/api/stream/ExplainTest.scala b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/api/stream/ExplainTest.scala
index 39d2326e332..8fce44b2dac 100644
--- a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/api/stream/ExplainTest.scala
+++ b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/api/stream/ExplainTest.scala
@@ -23,15 +23,15 @@ import org.apache.flink.table.api.config.ExecutionConfigOptions
import org.apache.flink.table.api.internal.TableEnvironmentInternal
import org.apache.flink.table.planner.utils.TableTestBase
import org.apache.flink.table.types.logical.{BigIntType, IntType, VarCharType}
+import org.apache.flink.testutils.junit.extensions.parameterized.{ParameterizedTestExtension, Parameters}
-import org.junit.{Before, Test}
-import org.junit.runner.RunWith
-import org.junit.runners.Parameterized
+import org.junit.jupiter.api.{BeforeEach, TestTemplate}
+import org.junit.jupiter.api.extension.ExtendWith
import java.sql.Timestamp
import java.time.Duration
-@RunWith(classOf[Parameterized])
+@ExtendWith(Array(classOf[ParameterizedTestExtension]))
class ExplainTest(extended: Boolean) extends TableTestBase {
private val extraDetails = if (extended) {
@@ -49,55 +49,55 @@ class ExplainTest(extended: Boolean) extends TableTestBase {
val LONG = new BigIntType()
val INT = new IntType()
- @Before
+ @BeforeEach
def before(): Unit = {
util.tableEnv.getConfig
.set(ExecutionConfigOptions.TABLE_EXEC_RESOURCE_DEFAULT_PARALLELISM, Int.box(4))
}
- @Test
+ @TestTemplate
def testExplainTableSourceScan(): Unit = {
util.verifyExplain("SELECT * FROM MyTable", extraDetails: _*)
}
- @Test
+ @TestTemplate
def testExplainDataStreamScan(): Unit = {
util.verifyExplain("SELECT * FROM MyTable1", extraDetails: _*)
}
- @Test
+ @TestTemplate
def testExplainWithFilter(): Unit = {
util.verifyExplain("SELECT * FROM MyTable1 WHERE mod(a, 2) = 0", extraDetails: _*)
}
- @Test
+ @TestTemplate
def testExplainWithAgg(): Unit = {
util.verifyExplain("SELECT COUNT(*) FROM MyTable1 GROUP BY a", extraDetails: _*)
}
- @Test
+ @TestTemplate
def testExplainWithJoin(): Unit = {
util.verifyExplain("SELECT a, b, c, e, f FROM MyTable1, MyTable2 WHERE a = d", extraDetails: _*)
}
- @Test
+ @TestTemplate
def testExplainWithUnion(): Unit = {
util.verifyExplain("SELECT * FROM MyTable1 UNION ALL SELECT * FROM MyTable2", extraDetails: _*)
}
- @Test
+ @TestTemplate
def testExplainWithSort(): Unit = {
util.verifyExplain("SELECT * FROM MyTable1 ORDER BY a LIMIT 5", extraDetails: _*)
}
- @Test
+ @TestTemplate
def testExplainWithSingleSink(): Unit = {
val table = util.tableEnv.sqlQuery("SELECT * FROM MyTable1 WHERE a > 10")
val appendSink = util.createAppendTableSink(Array("a", "b", "c"), Array(INT, LONG, STRING))
util.verifyExplainInsert(table, appendSink, "appendSink", extraDetails: _*)
}
- @Test
+ @TestTemplate
def testExplainWithMultiSinks(): Unit = {
val stmtSet = util.tableEnv.createStatementSet()
val table = util.tableEnv.sqlQuery("SELECT a, COUNT(*) AS cnt FROM MyTable1 GROUP BY a")
@@ -120,7 +120,7 @@ class ExplainTest(extended: Boolean) extends TableTestBase {
util.verifyExplain(stmtSet, extraDetails: _*)
}
- @Test
+ @TestTemplate
def testMiniBatchIntervalInfer(): Unit = {
val stmtSet = util.tableEnv.createStatementSet()
// Test emit latency propagate among RelNodeBlocks
@@ -176,7 +176,7 @@ class ExplainTest(extended: Boolean) extends TableTestBase {
}
object ExplainTest {
- @Parameterized.Parameters(name = "extended={0}")
+ @Parameters(name = "extended={0}")
def parameters(): java.util.Collection[Boolean] = {
java.util.Arrays.asList(true, false)
}
diff --git a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/api/stream/sql/validation/OverWindowValidationTest.scala b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/api/stream/sql/validation/OverWindowValidationTest.scala
index 60a7e247891..e171ab8c56b 100644
--- a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/api/stream/sql/validation/OverWindowValidationTest.scala
+++ b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/api/stream/sql/validation/OverWindowValidationTest.scala
@@ -24,7 +24,8 @@ import org.apache.flink.table.planner.runtime.utils.JavaUserDefinedAggFunctions.
import org.apache.flink.table.planner.utils.TableTestBase
import org.apache.flink.types.Row
-import org.junit.Test
+import org.assertj.core.api.Assertions.assertThatExceptionOfType
+import org.junit.jupiter.api.Test
class OverWindowValidationTest extends TableTestBase {
@@ -32,7 +33,7 @@ class OverWindowValidationTest extends TableTestBase {
streamUtil.addDataStream[(Int, String, Long)]("T1", 'a, 'b, 'c, 'proctime.proctime)
/** All aggregates must be computed on the same window. */
- @Test(expected = classOf[TableException])
+ @Test
def testMultiWindow(): Unit = {
val sqlQuery = "SELECT " +
@@ -41,16 +42,18 @@ class OverWindowValidationTest extends TableTestBase {
"sum(a) OVER (PARTITION BY b ORDER BY proctime RANGE UNBOUNDED preceding) " +
"from T1"
- streamUtil.tableEnv.sqlQuery(sqlQuery).toAppendStream[Row]
+ assertThatExceptionOfType(classOf[TableException])
+ .isThrownBy(() => streamUtil.tableEnv.sqlQuery(sqlQuery).toAppendStream[Row])
}
/** OVER clause is necessary for [[OverAgg0]] window function. */
- @Test(expected = classOf[ValidationException])
+ @Test
def testInvalidOverAggregation(): Unit = {
streamUtil.addFunction("overAgg", new OverAgg0)
val sqlQuery = "SELECT overAgg(c, a) FROM MyTable"
- streamUtil.tableEnv.sqlQuery(sqlQuery)
+ assertThatExceptionOfType(classOf[ValidationException])
+ .isThrownBy(() => streamUtil.tableEnv.sqlQuery(sqlQuery))
}
}
(flink) 04/08: [FLINK-33023][table-planner][JUnit5 Migration] Module: flink-table-planner/connector (TableTestBase)
Posted by le...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
leonard pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/flink.git
commit 6564bccbcb219a1e1eb641e2b54c51842cb56762
Author: Jiabao Sun <ji...@xtransfer.cn>
AuthorDate: Tue Sep 12 14:55:19 2023 +0800
[FLINK-33023][table-planner][JUnit5 Migration] Module: flink-table-planner/connector (TableTestBase)
---
.../connector/file/table/FileSystemTableSourceTest.java | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/connector/file/table/FileSystemTableSourceTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/connector/file/table/FileSystemTableSourceTest.java
index 3b3b71a7e10..358f5ed5776 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/connector/file/table/FileSystemTableSourceTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/connector/file/table/FileSystemTableSourceTest.java
@@ -23,16 +23,16 @@ import org.apache.flink.table.api.TableEnvironment;
import org.apache.flink.table.planner.utils.StreamTableTestUtil;
import org.apache.flink.table.planner.utils.TableTestBase;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
/** Test for {@link FileSystemTableSource}. */
-public class FileSystemTableSourceTest extends TableTestBase {
+class FileSystemTableSourceTest extends TableTestBase {
private StreamTableTestUtil util;
- @Before
- public void setup() {
+ @BeforeEach
+ void setup() {
util = streamTestUtil(TableConfig.getDefault());
TableEnvironment tEnv = util.getTableEnv();
@@ -71,12 +71,12 @@ public class FileSystemTableSourceTest extends TableTestBase {
}
@Test
- public void testFilterPushDown() {
+ void testFilterPushDown() {
util.verifyRelPlanInsert("insert into MySink select * from MyTable where a > 10");
}
@Test
- public void testMetadataReading() {
+ void testMetadataReading() {
util.verifyRelPlanInsert(
"insert into MySink(a, b, c) select a, b, filemeta from MyTableWithMeta");
}
(flink) 07/08: [FLINK-33023][table-planner][JUnit5 Migration] Module: flink-table-planner/planner/catalog,expressions,runtime (TableTestBase)
Posted by le...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
leonard pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/flink.git
commit 1fbe223a5d7b9232d58f471ae620306b9dad58ea
Author: Jiabao Sun <ji...@xtransfer.cn>
AuthorDate: Tue Sep 12 15:42:18 2023 +0800
[FLINK-33023][table-planner][JUnit5 Migration] Module: flink-table-planner/planner/catalog,expressions,runtime (TableTestBase)
---
.../planner/catalog/JavaCatalogTableTest.java | 34 ++++++++++++----------
.../runtime/batch/ParallelismSettingTest.java | 20 ++++++-------
2 files changed, 28 insertions(+), 26 deletions(-)
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/catalog/JavaCatalogTableTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/catalog/JavaCatalogTableTest.java
index 1bec0f771eb..fbb5d8e89f5 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/catalog/JavaCatalogTableTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/catalog/JavaCatalogTableTest.java
@@ -30,10 +30,12 @@ import org.apache.flink.table.catalog.GenericInMemoryCatalog;
import org.apache.flink.table.catalog.ObjectPath;
import org.apache.flink.table.planner.utils.TableTestBase;
import org.apache.flink.table.planner.utils.TableTestUtil;
+import org.apache.flink.testutils.junit.extensions.parameterized.Parameter;
+import org.apache.flink.testutils.junit.extensions.parameterized.ParameterizedTestExtension;
+import org.apache.flink.testutils.junit.extensions.parameterized.Parameters;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
+import org.junit.jupiter.api.TestTemplate;
+import org.junit.jupiter.api.extension.ExtendWith;
import java.util.Arrays;
import java.util.Collection;
@@ -49,14 +51,14 @@ import static org.apache.flink.table.api.Expressions.lit;
/**
* Tests for resolving types of computed columns (including time attributes) of tables from catalog.
*/
-@RunWith(Parameterized.class)
-public class JavaCatalogTableTest extends TableTestBase {
- @Parameterized.Parameters(name = "streamingMode = {0}")
- public static Collection<Boolean> parameters() {
+@ExtendWith(ParameterizedTestExtension.class)
+class JavaCatalogTableTest extends TableTestBase {
+ @Parameters(name = "streamingMode = {0}")
+ private static Collection<Boolean> parameters() {
return Arrays.asList(true, false);
}
- @Parameterized.Parameter public boolean isStreamingMode;
+ @Parameter private boolean isStreamingMode;
private TableTestUtil getTestUtil() {
if (isStreamingMode) {
@@ -66,8 +68,8 @@ public class JavaCatalogTableTest extends TableTestBase {
}
}
- @Test
- public void testResolvingSchemaOfCustomCatalogTableSql() throws Exception {
+ @TestTemplate
+ void testResolvingSchemaOfCustomCatalogTableSql() throws Exception {
TableTestUtil testUtil = getTestUtil();
TableEnvironment tableEnvironment = testUtil.getTableEnv();
GenericInMemoryCatalog genericInMemoryCatalog = new GenericInMemoryCatalog("in-memory");
@@ -83,8 +85,8 @@ public class JavaCatalogTableTest extends TableTestBase {
"SELECT COUNT(*) FROM testTable2 GROUP BY TUMBLE(rowtime, INTERVAL '10' MINUTE)");
}
- @Test
- public void testResolvingSchemaOfCustomCatalogTableTableApi() throws Exception {
+ @TestTemplate
+ void testResolvingSchemaOfCustomCatalogTableTableApi() throws Exception {
TableTestUtil testUtil = getTestUtil();
TableEnvironment tableEnvironment = testUtil.getTableEnv();
GenericInMemoryCatalog genericInMemoryCatalog = new GenericInMemoryCatalog("in-memory");
@@ -103,8 +105,8 @@ public class JavaCatalogTableTest extends TableTestBase {
testUtil.verifyExecPlan(table);
}
- @Test
- public void testResolvingProctimeOfCustomTableSql() throws Exception {
+ @TestTemplate
+ void testResolvingProctimeOfCustomTableSql() throws Exception {
if (!isStreamingMode) {
// proctime not supported in batch
return;
@@ -123,8 +125,8 @@ public class JavaCatalogTableTest extends TableTestBase {
+ "GROUP BY TUMBLE(proctime, INTERVAL '10' MINUTE)");
}
- @Test
- public void testResolvingProctimeOfCustomTableTableApi() throws Exception {
+ @TestTemplate
+ void testResolvingProctimeOfCustomTableTableApi() throws Exception {
if (!isStreamingMode) {
// proctime not supported in batch
return;
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/runtime/batch/ParallelismSettingTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/runtime/batch/ParallelismSettingTest.java
index e5115a4d3e8..844a0fbec33 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/runtime/batch/ParallelismSettingTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/runtime/batch/ParallelismSettingTest.java
@@ -25,8 +25,8 @@ import org.apache.flink.table.operations.Operation;
import org.apache.flink.table.planner.utils.BatchTableTestUtil;
import org.apache.flink.table.planner.utils.TableTestBase;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
import java.util.Collections;
import java.util.List;
@@ -38,8 +38,8 @@ public class ParallelismSettingTest extends TableTestBase {
private BatchTableTestUtil util;
- @Before
- public void before() {
+ @BeforeEach
+ void before() {
util = batchTestUtil(TableConfig.getDefault());
util.getTableEnv()
.getConfig()
@@ -58,7 +58,7 @@ public class ParallelismSettingTest extends TableTestBase {
}
@Test
- public void testParallelismSettingAfterSingletonShuffleRemove() {
+ void testParallelismSettingAfterSingletonShuffleRemove() {
util.getTableEnv()
.executeSql(
"CREATE TABLE MySink (\n"
@@ -88,7 +88,7 @@ public class ParallelismSettingTest extends TableTestBase {
}
@Test
- public void testSortQuery() {
+ void testSortQuery() {
util.getTableEnv()
.executeSql(
"CREATE TABLE MySink (\n"
@@ -121,7 +121,7 @@ public class ParallelismSettingTest extends TableTestBase {
}
@Test
- public void testLimitQuery() {
+ void testLimitQuery() {
util.getTableEnv()
.executeSql(
"CREATE TABLE MySink (\n"
@@ -155,7 +155,7 @@ public class ParallelismSettingTest extends TableTestBase {
}
@Test
- public void testSortLimitQuery() {
+ void testSortLimitQuery() {
util.getTableEnv()
.executeSql(
"CREATE TABLE MySink (\n"
@@ -190,7 +190,7 @@ public class ParallelismSettingTest extends TableTestBase {
}
@Test
- public void testRankQuery() {
+ void testRankQuery() {
util.getTableEnv()
.executeSql(
"CREATE TABLE MySink (\n"
@@ -241,7 +241,7 @@ public class ParallelismSettingTest extends TableTestBase {
}
@Test
- public void testJoinQuery() {
+ void testJoinQuery() {
util.tableEnv()
.executeSql(
"CREATE TABLE MyTable2 (\n"
(flink) 01/08: [FLINK-33023][table-planner][JUnit5 Migration] Module: flink-table-planner/planner/utils (TableTestBase)
Posted by le...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
leonard pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/flink.git
commit 722e638924bb2c925af6fc9e3cf17cf0d3046538
Author: Jiabao Sun <ji...@xtransfer.cn>
AuthorDate: Tue Sep 12 14:39:33 2023 +0800
[FLINK-33023][table-planner][JUnit5 Migration] Module: flink-table-planner/planner/utils (TableTestBase)
---
.../planner/utils/InternalConfigOptionsTest.java | 28 +++---
.../flink/table/planner/utils/TableTestBase.scala | 100 ++++++++++++---------
2 files changed, 71 insertions(+), 57 deletions(-)
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/utils/InternalConfigOptionsTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/utils/InternalConfigOptionsTest.java
index 8d1c182d3ea..bb30acf1228 100644
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/utils/InternalConfigOptionsTest.java
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/utils/InternalConfigOptionsTest.java
@@ -24,12 +24,14 @@ import org.apache.flink.table.api.TableConfig;
import org.apache.flink.table.api.TableEnvironment;
import org.apache.flink.table.planner.delegation.PlannerBase;
import org.apache.flink.table.planner.plan.nodes.exec.ExecNodeGraph;
+import org.apache.flink.testutils.junit.extensions.parameterized.Parameter;
+import org.apache.flink.testutils.junit.extensions.parameterized.ParameterizedTestExtension;
+import org.apache.flink.testutils.junit.extensions.parameterized.Parameters;
import org.apache.calcite.rel.RelNode;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.TestTemplate;
+import org.junit.jupiter.api.extension.ExtendWith;
import java.util.Arrays;
import java.util.Collection;
@@ -40,21 +42,21 @@ import static org.apache.flink.table.planner.utils.JavaScalaConversionUtil.toSca
import static org.assertj.core.api.Assertions.assertThat;
/** Tests for {@link InternalConfigOptions}. */
-@RunWith(Parameterized.class)
-public class InternalConfigOptionsTest extends TableTestBase {
+@ExtendWith(ParameterizedTestExtension.class)
+class InternalConfigOptionsTest extends TableTestBase {
private TableEnvironment tEnv;
private PlannerBase planner;
- @Parameterized.Parameters(name = "plannerMode = {0}")
- public static Collection<String> parameters() {
+ @Parameters(name = "plannerMode = {0}")
+ private static Collection<String> parameters() {
return Arrays.asList("STREAMING", "BATCH");
}
- @Parameterized.Parameter public String plannerMode;
+ @Parameter private String plannerMode;
- @Before
- public void setUp() {
+ @BeforeEach
+ void setUp() {
if (plannerMode.equals("STREAMING")) {
StreamTableTestUtil util = streamTestUtil(TableConfig.getDefault());
tEnv = util.getTableEnv();
@@ -66,8 +68,8 @@ public class InternalConfigOptionsTest extends TableTestBase {
}
}
- @Test
- public void testTranslateExecNodeGraphWithInternalTemporalConf() {
+ @TestTemplate
+ void testTranslateExecNodeGraphWithInternalTemporalConf() {
Table table =
tEnv.sqlQuery("SELECT LOCALTIME, LOCALTIMESTAMP, CURRENT_TIME, CURRENT_TIMESTAMP");
RelNode relNode = planner.optimize(TableTestUtil.toRelNode(table));
diff --git a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/utils/TableTestBase.scala b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/utils/TableTestBase.scala
index 7fc23d8281f..d8920bc62c0 100644
--- a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/utils/TableTestBase.scala
+++ b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/utils/TableTestBase.scala
@@ -22,7 +22,6 @@ import org.apache.flink.api.common.typeinfo.{AtomicType, TypeInformation}
import org.apache.flink.api.java.typeutils.{PojoTypeInfo, RowTypeInfo, TupleTypeInfo}
import org.apache.flink.api.scala.typeutils.CaseClassTypeInfo
import org.apache.flink.configuration.BatchExecutionOptions
-import org.apache.flink.core.testutils.FlinkMatchers.containsMessage
import org.apache.flink.shaded.jackson2.com.fasterxml.jackson.core.JsonParseException
import org.apache.flink.shaded.jackson2.com.fasterxml.jackson.databind.JsonNode
import org.apache.flink.streaming.api.{environment, TimeCharacteristic}
@@ -67,6 +66,7 @@ import org.apache.flink.table.sources.{StreamTableSource, TableSource}
import org.apache.flink.table.types.logical.LogicalType
import org.apache.flink.table.types.utils.TypeConversions
import org.apache.flink.table.typeutils.FieldInfoUtils
+import org.apache.flink.testutils.junit.extensions.parameterized.ParameterizedTestExtension
import org.apache.flink.types.Row
import org.apache.flink.util.{FlinkUserCodeClassLoaders, MutableURLClassLoader}
import org.apache.flink.util.jackson.JacksonMapperFactory
@@ -79,35 +79,27 @@ import org.apache.calcite.avatica.util.TimeUnit
import org.apache.calcite.rel.RelNode
import org.apache.calcite.sql.{SqlExplainLevel, SqlIntervalQualifier}
import org.apache.calcite.sql.parser.SqlParserPos
-import org.junit.Assert.{assertEquals, assertThat, assertTrue, fail}
-import org.junit.Rule
-import org.junit.rules.{ExpectedException, TemporaryFolder, TestName}
+import org.assertj.core.api.Assertions.{assertThat, assertThatExceptionOfType, fail}
+import org.junit.jupiter.api.Assertions.{assertEquals, assertTrue}
+import org.junit.jupiter.api.extension.{BeforeEachCallback, ExtendWith, ExtensionContext, RegisterExtension}
+import org.junit.jupiter.api.io.TempDir
+import org.junit.platform.commons.support.AnnotationSupport
import java.io.{File, IOException}
import java.net.URL
-import java.nio.file.{Files, Paths}
+import java.nio.file.{Files, Path, Paths}
import java.time.Duration
import java.util.Collections
/** Test base for testing Table API / SQL plans. */
abstract class TableTestBase {
- // used for accurate exception information checking.
- val expectedException: ExpectedException = ExpectedException.none()
-
// used for get test case method name
+ @RegisterExtension
val testName: TestName = new TestName
- val _tempFolder = new TemporaryFolder
-
- @Rule
- def tempFolder: TemporaryFolder = _tempFolder
-
- @Rule
- def thrown: ExpectedException = expectedException
-
- @Rule
- def name: TestName = testName
+ @TempDir
+ var tempFolder: Path = _
def streamTestUtil(tableConfig: TableConfig = TableConfig.getDefault): StreamTableTestUtil =
StreamTableTestUtil(this, tableConfig = tableConfig)
@@ -127,9 +119,36 @@ abstract class TableTestBase {
val expectedString = FlinkRelOptUtil.toString(TableTestUtil.toRelNode(expected))
val actualString = FlinkRelOptUtil.toString(TableTestUtil.toRelNode(actual))
assertEquals(
- "Logical plans do not match",
LogicalPlanFormatUtils.formatTempTableId(expectedString),
- LogicalPlanFormatUtils.formatTempTableId(actualString))
+ LogicalPlanFormatUtils.formatTempTableId(actualString),
+ "Logical plans do not match")
+ }
+}
+
+class TestName extends BeforeEachCallback {
+
+ private val bracketsRegex = """\[.*\]""".r
+
+ private var methodName: String = _
+
+ def getMethodName: String = methodName
+
+ override def beforeEach(context: ExtensionContext): Unit = {
+ if (hasParameterizedTestExtension(context)) {
+ val displayName = context.getDisplayName match {
+ case bracketsRegex(_*) => context.getDisplayName
+ case _ => s"[${context.getDisplayName}]"
+ }
+ methodName = s"${context.getTestMethod.get().getName}$displayName"
+ } else {
+ methodName = context.getTestMethod.get().getName
+ }
+ }
+
+ private def hasParameterizedTestExtension(context: ExtensionContext): Boolean = {
+ Option(AnnotationSupport.findAnnotation(context.getTestClass, classOf[ExtendWith]).orElse(null))
+ .map(_.value)
+ .exists(_.contains(classOf[ParameterizedTestExtension]))
}
}
@@ -622,7 +641,7 @@ abstract class TableTestUtilBase(test: TableTestBase, isStreamingMode: Boolean)
val optimizedPlan = getOptimizedRelPlan(Array(optimizedRel), Array.empty, withRowType = false)
val result = notExpected.forall(!optimizedPlan.contains(_))
val message = s"\nactual plan:\n$optimizedPlan\nnot expected:\n${notExpected.mkString(", ")}"
- assertTrue(message, result)
+ assertTrue(result, message)
}
/**
@@ -752,14 +771,9 @@ abstract class TableTestUtilBase(test: TableTestBase, isStreamingMode: Boolean)
sql: String,
message: String,
clazz: Class[_ <: Throwable] = classOf[ValidationException]): Unit = {
- try {
- verifyExplain(sql)
- fail(s"Expected a $clazz, but no exception is thrown.")
- } catch {
- case e: Throwable =>
- assertTrue(clazz.isAssignableFrom(e.getClass))
- assertThat(e, containsMessage(message))
- }
+ assertThatExceptionOfType(clazz)
+ .isThrownBy(() => verifyExplain(sql))
+ .withMessageContaining(message)
}
/**
@@ -841,22 +855,20 @@ abstract class TableTestUtilBase(test: TableTestBase, isStreamingMode: Boolean)
fail(s"$testMethodFileName regenerated.")
} else {
val expected = String.join("\n", Files.readAllLines(path))
- assertEquals(
- TableTestUtil.replaceExecNodeId(TableTestUtil.getPrettyJson(expected)),
- TableTestUtil.replaceExecNodeId(TableTestUtil.getPrettyJson(jsonPlanWithoutFlinkVersion))
- )
+ assertThat(
+ TableTestUtil.replaceExecNodeId(TableTestUtil.getPrettyJson(jsonPlanWithoutFlinkVersion)))
+ .isEqualTo(TableTestUtil.replaceExecNodeId(TableTestUtil.getPrettyJson(expected)))
// check json serde round trip as well
val expectedWithFlinkVersion = JsonTestUtils.writeToString(
JsonTestUtils
.setFlinkVersion(JsonTestUtils.readFromString(expected), FlinkVersion.current()))
- assertEquals(
- TableTestUtil.replaceExecNodeId(TableTestUtil.getFormattedJson(expectedWithFlinkVersion)),
+ assertThat(
TableTestUtil.replaceExecNodeId(
- TableTestUtil.getFormattedJson(
- getPlanner
- .loadPlan(PlanReference.fromJsonString(expectedWithFlinkVersion))
- .asJsonString()))
- )
+ TableTestUtil.getFormattedJson(getPlanner
+ .loadPlan(PlanReference.fromJsonString(expectedWithFlinkVersion))
+ .asJsonString())))
+ .isEqualTo(
+ TableTestUtil.replaceExecNodeId(TableTestUtil.getFormattedJson(expectedWithFlinkVersion)))
}
}
@@ -1127,16 +1139,16 @@ abstract class TableTestUtilBase(test: TableTestBase, isStreamingMode: Boolean)
def assertEqualsOrExpand(tag: String, actual: String, expand: Boolean = true): Unit = {
val expected = s"$${$tag}"
if (!expand) {
- diffRepository.assertEquals(test.name.getMethodName, tag, expected, actual)
+ diffRepository.assertEquals(test.testName.getMethodName, tag, expected, actual)
return
}
- val expanded = diffRepository.expand(test.name.getMethodName, tag, expected)
+ val expanded = diffRepository.expand(test.testName.getMethodName, tag, expected)
if (expanded != null && !expanded.equals(expected)) {
// expected does exist, check result
- diffRepository.assertEquals(test.name.getMethodName, tag, expected, actual)
+ diffRepository.assertEquals(test.testName.getMethodName, tag, expected, actual)
} else {
// expected does not exist, update
- diffRepository.expand(test.name.getMethodName, tag, actual)
+ diffRepository.expand(test.testName.getMethodName, tag, actual)
}
}
}