This is an automated email from the ASF dual-hosted git repository.
xxubai pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/amoro.git
The following commit(s) were added to refs/heads/master by this push:
new cf8ff05d7 [AMORO-4203][optimizer-common] Migrate tests from JUnit 4 to
JUnit 5 (#4204)
cf8ff05d7 is described below
commit cf8ff05d72c67353fa8a76d1d73437abc3043ea7
Author: Darcy <[email protected]>
AuthorDate: Thu May 7 16:07:23 2026 +0800
[AMORO-4203][optimizer-common] Migrate tests from JUnit 4 to JUnit 5 (#4204)
Migrate the 5 test files in amoro-optimizer-common to JUnit Jupiter:
OptimizerTestBase, TestOptimizer, TestOptimizerToucher,
TestOptimizerExecutor,
TestOptimizerConfig.
OptimizerTestBase no longer uses @ClassRule on TestAms (which still extends
ExternalResource until the closing PR of #4203). Its public before()/after()
are invoked from @BeforeAll/@AfterAll instead, which preserves the original
lifecycle without forcing TestAms itself to migrate yet. The duplicated
@BeforeClass reduceCallAmsInterval() in TestOptimizer is dropped because the
parent already runs it.
Mechanical changes elsewhere: org.junit.* -> org.junit.jupiter.api.*;
@Before/@After -> @BeforeEach/@AfterEach; Assert.assertX ->
Assertions.assertX;
@Test(expected=CmdLineException.class) in TestOptimizerConfig -> three
Assertions.assertThrows(...) calls.
mvn -pl amoro-optimizer/amoro-optimizer-common -am test passes (10/10).
---
.../amoro/optimizer/common/OptimizerTestBase.java | 20 ++++++---
.../amoro/optimizer/common/TestOptimizer.java | 14 ++----
.../optimizer/common/TestOptimizerConfig.java | 52 +++++++++++-----------
.../optimizer/common/TestOptimizerExecutor.java | 44 +++++++++---------
.../optimizer/common/TestOptimizerToucher.java | 24 +++++-----
5 files changed, 78 insertions(+), 76 deletions(-)
diff --git
a/amoro-optimizer/amoro-optimizer-common/src/test/java/org/apache/amoro/optimizer/common/OptimizerTestBase.java
b/amoro-optimizer/amoro-optimizer-common/src/test/java/org/apache/amoro/optimizer/common/OptimizerTestBase.java
index 3d27f13f9..95b0cbc58 100644
---
a/amoro-optimizer/amoro-optimizer-common/src/test/java/org/apache/amoro/optimizer/common/OptimizerTestBase.java
+++
b/amoro-optimizer/amoro-optimizer-common/src/test/java/org/apache/amoro/optimizer/common/OptimizerTestBase.java
@@ -19,19 +19,25 @@
package org.apache.amoro.optimizer.common;
import org.apache.amoro.TestAms;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.ClassRule;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.BeforeEach;
public abstract class OptimizerTestBase {
- @ClassRule public static TestAms TEST_AMS = new TestAms();
+ protected static final TestAms TEST_AMS = new TestAms();
- @BeforeClass
- public static void reduceCallAmsInterval() {
+ @BeforeAll
+ public static void startTestAms() throws Exception {
+ TEST_AMS.before();
OptimizerTestHelpers.setCallAmsIntervalForTest();
}
- @Before
+ @AfterAll
+ public static void stopTestAms() {
+ TEST_AMS.after();
+ }
+
+ @BeforeEach
public void clearTasks() {
TEST_AMS.getOptimizerHandler().getRegisteredOptimizers().clear();
TEST_AMS.getOptimizerHandler().getPendingTasks().clear();
diff --git
a/amoro-optimizer/amoro-optimizer-common/src/test/java/org/apache/amoro/optimizer/common/TestOptimizer.java
b/amoro-optimizer/amoro-optimizer-common/src/test/java/org/apache/amoro/optimizer/common/TestOptimizer.java
index 79c42b78b..1feeef57f 100644
---
a/amoro-optimizer/amoro-optimizer-common/src/test/java/org/apache/amoro/optimizer/common/TestOptimizer.java
+++
b/amoro-optimizer/amoro-optimizer-common/src/test/java/org/apache/amoro/optimizer/common/TestOptimizer.java
@@ -19,20 +19,14 @@
package org.apache.amoro.optimizer.common;
import org.apache.amoro.api.OptimizingTaskResult;
-import org.junit.Assert;
-import org.junit.BeforeClass;
-import org.junit.Test;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
import java.util.List;
import java.util.concurrent.TimeUnit;
public class TestOptimizer extends OptimizerTestBase {
- @BeforeClass
- public static void reduceCallAmsInterval() {
- OptimizerTestHelpers.setCallAmsIntervalForTest();
- }
-
@Test
public void testStartOptimizer() throws InterruptedException {
OptimizerConfig optimizerConfig =
@@ -40,7 +34,7 @@ public class TestOptimizer extends OptimizerTestBase {
Optimizer optimizer = new Optimizer(optimizerConfig);
new Thread(optimizer::startOptimizing).start();
TimeUnit.SECONDS.sleep(1);
- Assert.assertEquals(1,
TEST_AMS.getOptimizerHandler().getRegisteredOptimizers().size());
+ Assertions.assertEquals(1,
TEST_AMS.getOptimizerHandler().getRegisteredOptimizers().size());
TEST_AMS
.getOptimizerHandler()
.offerTask(TestOptimizerExecutor.TestOptimizingInput.successInput(1).toTask(0,
0));
@@ -51,7 +45,7 @@ public class TestOptimizer extends OptimizerTestBase {
String token = optimizer.getToucher().getToken();
List<OptimizingTaskResult> taskResults =
TEST_AMS.getOptimizerHandler().getCompletedTasks().get(token);
- Assert.assertEquals(2, taskResults.size());
+ Assertions.assertEquals(2, taskResults.size());
optimizer.stopOptimizing();
}
}
diff --git
a/amoro-optimizer/amoro-optimizer-common/src/test/java/org/apache/amoro/optimizer/common/TestOptimizerConfig.java
b/amoro-optimizer/amoro-optimizer-common/src/test/java/org/apache/amoro/optimizer/common/TestOptimizerConfig.java
index a646fe7ba..6a8f96a73 100644
---
a/amoro-optimizer/amoro-optimizer-common/src/test/java/org/apache/amoro/optimizer/common/TestOptimizerConfig.java
+++
b/amoro-optimizer/amoro-optimizer-common/src/test/java/org/apache/amoro/optimizer/common/TestOptimizerConfig.java
@@ -18,8 +18,8 @@
package org.apache.amoro.optimizer.common;
-import org.junit.Assert;
-import org.junit.Test;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
import org.kohsuke.args4j.CmdLineException;
import java.util.UUID;
@@ -31,13 +31,13 @@ public class TestOptimizerConfig {
String cmd = "-a thrift://127.0.0.1:1260 -p 11 -g g1 -hb 2000 -eds -dsp
/tmp/amoro -msz 512";
String[] args = cmd.split(" ");
OptimizerConfig optimizerConfig = new OptimizerConfig(args);
- Assert.assertEquals("thrift://127.0.0.1:1260",
optimizerConfig.getAmsUrl());
- Assert.assertEquals(11, optimizerConfig.getExecutionParallel());
- Assert.assertEquals("g1", optimizerConfig.getGroupName());
- Assert.assertEquals(2000, optimizerConfig.getHeartBeat());
- Assert.assertTrue(optimizerConfig.isExtendDiskStorage());
- Assert.assertEquals("/tmp/amoro", optimizerConfig.getDiskStoragePath());
- Assert.assertEquals(512, optimizerConfig.getMemoryStorageSize());
+ Assertions.assertEquals("thrift://127.0.0.1:1260",
optimizerConfig.getAmsUrl());
+ Assertions.assertEquals(11, optimizerConfig.getExecutionParallel());
+ Assertions.assertEquals("g1", optimizerConfig.getGroupName());
+ Assertions.assertEquals(2000, optimizerConfig.getHeartBeat());
+ Assertions.assertTrue(optimizerConfig.isExtendDiskStorage());
+ Assertions.assertEquals("/tmp/amoro",
optimizerConfig.getDiskStoragePath());
+ Assertions.assertEquals(512, optimizerConfig.getMemoryStorageSize());
}
@Test
@@ -60,31 +60,31 @@ public class TestOptimizerConfig {
config.setMemoryStorageSize(memoryStorageSize);
config.setResourceId(resourceId);
- Assert.assertEquals(amsUrl, config.getAmsUrl());
- Assert.assertEquals(executionParallel, config.getExecutionParallel());
- Assert.assertEquals(groupName, config.getGroupName());
- Assert.assertEquals(heartBeat, config.getHeartBeat());
- Assert.assertTrue(config.isExtendDiskStorage());
- Assert.assertEquals(diskStoragePath, config.getDiskStoragePath());
- Assert.assertEquals(memoryStorageSize, config.getMemoryStorageSize());
- Assert.assertEquals(resourceId, config.getResourceId());
+ Assertions.assertEquals(amsUrl, config.getAmsUrl());
+ Assertions.assertEquals(executionParallel, config.getExecutionParallel());
+ Assertions.assertEquals(groupName, config.getGroupName());
+ Assertions.assertEquals(heartBeat, config.getHeartBeat());
+ Assertions.assertTrue(config.isExtendDiskStorage());
+ Assertions.assertEquals(diskStoragePath, config.getDiskStoragePath());
+ Assertions.assertEquals(memoryStorageSize, config.getMemoryStorageSize());
+ Assertions.assertEquals(resourceId, config.getResourceId());
}
- @Test(expected = CmdLineException.class)
- public void testMissingRequiredArgs() throws CmdLineException {
+ @Test
+ public void testMissingRequiredArgs() {
String[] args = {"-a", "thrift://127.0.0.1:1260", "-p", "4"};
- new OptimizerConfig(args);
+ Assertions.assertThrows(CmdLineException.class, () -> new
OptimizerConfig(args));
}
- @Test(expected = CmdLineException.class)
- public void testInvalidArgs() throws CmdLineException {
+ @Test
+ public void testInvalidArgs() {
String[] args = {"-a", "thrift://127.0.0.1:1260", "-p", "invalid", "-g",
"testGroup"};
- new OptimizerConfig(args);
+ Assertions.assertThrows(CmdLineException.class, () -> new
OptimizerConfig(args));
}
- @Test(expected = CmdLineException.class)
- public void testMissingValueArgs() throws CmdLineException {
+ @Test
+ public void testMissingValueArgs() {
String[] args = {"-a", "thrift://127.0.0.1:1260", "-p", "-g", "testGroup"};
- new OptimizerConfig(args);
+ Assertions.assertThrows(CmdLineException.class, () -> new
OptimizerConfig(args));
}
}
diff --git
a/amoro-optimizer/amoro-optimizer-common/src/test/java/org/apache/amoro/optimizer/common/TestOptimizerExecutor.java
b/amoro-optimizer/amoro-optimizer-common/src/test/java/org/apache/amoro/optimizer/common/TestOptimizerExecutor.java
index 5bacb7364..08f5a370c 100644
---
a/amoro-optimizer/amoro-optimizer-common/src/test/java/org/apache/amoro/optimizer/common/TestOptimizerExecutor.java
+++
b/amoro-optimizer/amoro-optimizer-common/src/test/java/org/apache/amoro/optimizer/common/TestOptimizerExecutor.java
@@ -30,10 +30,10 @@ import org.apache.amoro.optimizing.TaskProperties;
import org.apache.amoro.shade.guava32.com.google.common.collect.Maps;
import org.apache.amoro.shade.thrift.org.apache.thrift.TException;
import org.apache.amoro.utils.SerializationUtil;
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
import java.util.Map;
import java.util.concurrent.TimeUnit;
@@ -44,7 +44,7 @@ public class TestOptimizerExecutor extends OptimizerTestBase {
private OptimizerExecutor optimizerExecutor;
- @Before
+ @BeforeEach
public void startOptimizer() {
OptimizerConfig optimizerConfig =
OptimizerTestHelpers.buildOptimizerConfig(TEST_AMS.getServerUrl());
@@ -52,7 +52,7 @@ public class TestOptimizerExecutor extends OptimizerTestBase {
new Thread(optimizerExecutor::start).start();
}
- @After
+ @AfterEach
public void stopOptimizer() {
optimizerExecutor.stop();
}
@@ -61,7 +61,7 @@ public class TestOptimizerExecutor extends OptimizerTestBase {
public void testWaitForToken() throws InterruptedException {
TEST_AMS.getOptimizerHandler().offerTask(TestOptimizingInput.successInput(1).toTask(0,
0));
TimeUnit.MILLISECONDS.sleep(OptimizerTestHelpers.CALL_AMS_INTERVAL * 2);
- Assert.assertEquals(1,
TEST_AMS.getOptimizerHandler().getPendingTasks().size());
+ Assertions.assertEquals(1,
TEST_AMS.getOptimizerHandler().getPendingTasks().size());
}
@Test
@@ -70,18 +70,19 @@ public class TestOptimizerExecutor extends
OptimizerTestBase {
String token =
TEST_AMS.getOptimizerHandler().getRegisteredOptimizers().keySet().iterator().next();
TEST_AMS.getOptimizerHandler().offerTask(TestOptimizingInput.successInput(1).toTask(0,
0));
- Assert.assertEquals(1,
TEST_AMS.getOptimizerHandler().getPendingTasks().size());
+ Assertions.assertEquals(1,
TEST_AMS.getOptimizerHandler().getPendingTasks().size());
optimizerExecutor.setToken(token);
TimeUnit.MILLISECONDS.sleep(OptimizerTestHelpers.CALL_AMS_INTERVAL * 2);
- Assert.assertEquals(0,
TEST_AMS.getOptimizerHandler().getPendingTasks().size());
-
Assert.assertTrue(TEST_AMS.getOptimizerHandler().getCompletedTasks().containsKey(token));
- Assert.assertEquals(1,
TEST_AMS.getOptimizerHandler().getCompletedTasks().get(token).size());
+ Assertions.assertEquals(0,
TEST_AMS.getOptimizerHandler().getPendingTasks().size());
+
Assertions.assertTrue(TEST_AMS.getOptimizerHandler().getCompletedTasks().containsKey(token));
+ Assertions.assertEquals(
+ 1,
TEST_AMS.getOptimizerHandler().getCompletedTasks().get(token).size());
OptimizingTaskResult taskResult =
TEST_AMS.getOptimizerHandler().getCompletedTasks().get(token).get(0);
- Assert.assertEquals(new OptimizingTaskId(0, 0), taskResult.getTaskId());
- Assert.assertNull(taskResult.getErrorMessage());
+ Assertions.assertEquals(new OptimizingTaskId(0, 0),
taskResult.getTaskId());
+ Assertions.assertNull(taskResult.getErrorMessage());
TestOptimizingOutput output =
SerializationUtil.simpleDeserialize(taskResult.getTaskOutput());
- Assert.assertEquals(1, output.inputId());
+ Assertions.assertEquals(1, output.inputId());
}
@Test
@@ -90,17 +91,18 @@ public class TestOptimizerExecutor extends
OptimizerTestBase {
String token =
TEST_AMS.getOptimizerHandler().getRegisteredOptimizers().keySet().iterator().next();
TEST_AMS.getOptimizerHandler().offerTask(TestOptimizingInput.failedInput(1).toTask(0,
0));
- Assert.assertEquals(1,
TEST_AMS.getOptimizerHandler().getPendingTasks().size());
+ Assertions.assertEquals(1,
TEST_AMS.getOptimizerHandler().getPendingTasks().size());
optimizerExecutor.setToken(token);
TimeUnit.MILLISECONDS.sleep(OptimizerTestHelpers.CALL_AMS_INTERVAL * 2);
- Assert.assertEquals(0,
TEST_AMS.getOptimizerHandler().getPendingTasks().size());
-
Assert.assertTrue(TEST_AMS.getOptimizerHandler().getCompletedTasks().containsKey(token));
- Assert.assertEquals(1,
TEST_AMS.getOptimizerHandler().getCompletedTasks().get(token).size());
+ Assertions.assertEquals(0,
TEST_AMS.getOptimizerHandler().getPendingTasks().size());
+
Assertions.assertTrue(TEST_AMS.getOptimizerHandler().getCompletedTasks().containsKey(token));
+ Assertions.assertEquals(
+ 1,
TEST_AMS.getOptimizerHandler().getCompletedTasks().get(token).size());
OptimizingTaskResult taskResult =
TEST_AMS.getOptimizerHandler().getCompletedTasks().get(token).get(0);
- Assert.assertEquals(new OptimizingTaskId(0, 0), taskResult.getTaskId());
- Assert.assertNull(taskResult.getTaskOutput());
-
Assert.assertTrue(taskResult.getErrorMessage().contains(FAILED_TASK_MESSAGE));
+ Assertions.assertEquals(new OptimizingTaskId(0, 0),
taskResult.getTaskId());
+ Assertions.assertNull(taskResult.getTaskOutput());
+
Assertions.assertTrue(taskResult.getErrorMessage().contains(FAILED_TASK_MESSAGE));
}
public static class TestOptimizingInput extends BaseOptimizingInput {
diff --git
a/amoro-optimizer/amoro-optimizer-common/src/test/java/org/apache/amoro/optimizer/common/TestOptimizerToucher.java
b/amoro-optimizer/amoro-optimizer-common/src/test/java/org/apache/amoro/optimizer/common/TestOptimizerToucher.java
index 814f001cd..749dec499 100644
---
a/amoro-optimizer/amoro-optimizer-common/src/test/java/org/apache/amoro/optimizer/common/TestOptimizerToucher.java
+++
b/amoro-optimizer/amoro-optimizer-common/src/test/java/org/apache/amoro/optimizer/common/TestOptimizerToucher.java
@@ -22,8 +22,8 @@ import org.apache.amoro.OptimizerProperties;
import org.apache.amoro.api.OptimizerRegisterInfo;
import org.apache.amoro.shade.guava32.com.google.common.collect.Lists;
import org.apache.amoro.shade.guava32.com.google.common.collect.Maps;
-import org.junit.Assert;
-import org.junit.Test;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
import java.util.List;
import java.util.Map;
@@ -43,8 +43,8 @@ public class TestOptimizerToucher extends OptimizerTestBase {
optimizerToucher.withRegisterProperty("test_k", "test_v");
new Thread(optimizerToucher::start).start();
tokenChangeListener.waitForTokenChange();
- Assert.assertEquals(1, tokenChangeListener.tokenList().size());
- Assert.assertEquals(1,
TEST_AMS.getOptimizerHandler().getRegisteredOptimizers().size());
+ Assertions.assertEquals(1, tokenChangeListener.tokenList().size());
+ Assertions.assertEquals(1,
TEST_AMS.getOptimizerHandler().getRegisteredOptimizers().size());
Map<String, String> optimizerProperties = Maps.newHashMap();
optimizerProperties.put("test_k", "test_v");
optimizerProperties.put(OptimizerProperties.OPTIMIZER_HEART_BEAT_INTERVAL,
"1000");
@@ -54,8 +54,8 @@ public class TestOptimizerToucher extends OptimizerTestBase {
// clear all optimizer, toucher will register again
TEST_AMS.getOptimizerHandler().getRegisteredOptimizers().clear();
tokenChangeListener.waitForTokenChange();
- Assert.assertEquals(2, tokenChangeListener.tokenList().size());
- Assert.assertEquals(1,
TEST_AMS.getOptimizerHandler().getRegisteredOptimizers().size());
+ Assertions.assertEquals(2, tokenChangeListener.tokenList().size());
+ Assertions.assertEquals(1,
TEST_AMS.getOptimizerHandler().getRegisteredOptimizers().size());
validateRegisteredOptimizer(
tokenChangeListener.tokenList().get(1), optimizerConfig,
optimizerProperties);
@@ -66,14 +66,14 @@ public class TestOptimizerToucher extends OptimizerTestBase
{
String token, OptimizerConfig registerConfig, Map<String, String>
optimizerProperties) {
Map<String, OptimizerRegisterInfo> registeredOptimizerMap =
TEST_AMS.getOptimizerHandler().getRegisteredOptimizers();
- Assert.assertTrue(registeredOptimizerMap.containsKey(token));
+ Assertions.assertTrue(registeredOptimizerMap.containsKey(token));
OptimizerRegisterInfo registerInfo = registeredOptimizerMap.get(token);
- Assert.assertEquals(registerConfig.getResourceId(),
registerInfo.getResourceId());
- Assert.assertEquals(registerConfig.getGroupName(),
registerInfo.getGroupName());
- Assert.assertEquals(registerConfig.getMemorySize(),
registerInfo.getMemoryMb());
- Assert.assertEquals(registerConfig.getExecutionParallel(),
registerInfo.getThreadCount());
- Assert.assertEquals(optimizerProperties, registerInfo.getProperties());
+ Assertions.assertEquals(registerConfig.getResourceId(),
registerInfo.getResourceId());
+ Assertions.assertEquals(registerConfig.getGroupName(),
registerInfo.getGroupName());
+ Assertions.assertEquals(registerConfig.getMemorySize(),
registerInfo.getMemoryMb());
+ Assertions.assertEquals(registerConfig.getExecutionParallel(),
registerInfo.getThreadCount());
+ Assertions.assertEquals(optimizerProperties, registerInfo.getProperties());
}
static class TestTokenChangeListener implements
OptimizerToucher.TokenChangeListener {