Fix flaky test in ElasticJobExecutorTest (#2486)
* fix flaky test in ElasticJobExecutorTest
* checkstyle update
diff --git a/kernel/src/test/java/org/apache/shardingsphere/elasticjob/kernel/executor/ElasticJobExecutorTest.java b/kernel/src/test/java/org/apache/shardingsphere/elasticjob/kernel/executor/ElasticJobExecutorTest.java
index 220ae2d..1c507d7 100644
--- a/kernel/src/test/java/org/apache/shardingsphere/elasticjob/kernel/executor/ElasticJobExecutorTest.java
+++ b/kernel/src/test/java/org/apache/shardingsphere/elasticjob/kernel/executor/ElasticJobExecutorTest.java
@@ -42,6 +42,7 @@
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyBoolean;
+import static org.mockito.ArgumentMatchers.argThat;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.doThrow;
import static org.mockito.Mockito.lenient;
@@ -135,17 +136,21 @@
} finally {
verify(jobFacade).postJobStatusTraceEvent(shardingContexts.getTaskId(), State.TASK_STAGING, "Job 'test_job' execute begin.");
verify(jobFacade).postJobStatusTraceEvent(shardingContexts.getTaskId(), State.TASK_RUNNING, "");
- verify(jobFacade).postJobStatusTraceEvent(shardingContexts.getTaskId(), State.TASK_ERROR, getErrorMessage(shardingContexts));
+ verify(jobFacade).postJobStatusTraceEvent(eq(shardingContexts.getTaskId()), eq(State.TASK_ERROR), argThat(msg -> isValidErrorMessage(msg, shardingContexts)));
verify(jobFacade).registerJobBegin(shardingContexts);
verify(jobItemExecutor, times(shardingContexts.getShardingTotalCount())).process(eq(fooJob), eq(jobConfig), eq(jobRuntimeService), any());
verify(jobFacade).registerJobCompleted(shardingContexts);
}
}
- private String getErrorMessage(final ShardingContexts shardingContexts) {
- return 1 == shardingContexts.getShardingItemParameters().size()
- ? "{0=java.lang.RuntimeException" + System.lineSeparator() + "}"
- : "{0=java.lang.RuntimeException" + System.lineSeparator() + ", 1=java.lang.RuntimeException" + System.lineSeparator() + "}";
+ private boolean isValidErrorMessage(final String errorMessage, final ShardingContexts shardingContexts) {
+ if (1 == shardingContexts.getShardingItemParameters().size()) {
+ return ("{0=java.lang.RuntimeException" + System.lineSeparator() + "}").equals(errorMessage);
+ } else {
+ String pattern1 = "{0=java.lang.RuntimeException" + System.lineSeparator() + ", 1=java.lang.RuntimeException" + System.lineSeparator() + "}";
+ String pattern2 = "{1=java.lang.RuntimeException" + System.lineSeparator() + ", 0=java.lang.RuntimeException" + System.lineSeparator() + "}";
+ return errorMessage.equals(pattern1) || errorMessage.equals(pattern2);
+ }
}
@Test