Attempt to make AbstractSchedulingTaskExecutorTests more robust

This commit is contained in:
Sam Brannen 2019-05-27 12:01:34 +02:00
parent 4b9f5a35a6
commit 32277b74db
1 changed files with 29 additions and 25 deletions

View File

@ -38,6 +38,7 @@ import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
/**
* @author Juergen Hoeller
* @author Sam Brannen
* @since 5.0.5
*/
public abstract class AbstractSchedulingTaskExecutorTests {
@ -99,14 +100,12 @@ public abstract class AbstractSchedulingTaskExecutorTests {
@Test
public void submitRunnableWithGetAfterShutdown() throws Exception {
TestTask task1 = new TestTask(-1);
Future<?> future1 = executor.submit(task1);
TestTask task2 = new TestTask(-1);
Future<?> future2 = executor.submit(task2);
Future<?> future1 = executor.submit(new TestTask(-1));
Future<?> future2 = executor.submit(new TestTask(-1));
shutdownExecutor();
assertThatExceptionOfType(CancellationException.class).isThrownBy(() -> {
future1.get();
future2.get();
future1.get(1000, TimeUnit.MILLISECONDS);
future2.get(1000, TimeUnit.MILLISECONDS);
});
}
@ -141,15 +140,23 @@ public abstract class AbstractSchedulingTaskExecutorTests {
@Test
public void submitListenableRunnableWithGetAfterShutdown() throws Exception {
TestTask task1 = new TestTask(-1);
ListenableFuture<?> future1 = executor.submitListenable(task1);
TestTask task2 = new TestTask(-1);
ListenableFuture<?> future2 = executor.submitListenable(task2);
ListenableFuture<?> future1 = executor.submitListenable(new TestTask(-1));
ListenableFuture<?> future2 = executor.submitListenable(new TestTask(-1));
shutdownExecutor();
assertThatExceptionOfType(CancellationException.class).isThrownBy(() -> {
future1.get();
future2.get();
});
try {
future1.get(1000, TimeUnit.MILLISECONDS);
}
catch (Exception ex) {
/* ignore */
}
Awaitility.await()
.atMost(4, TimeUnit.SECONDS)
.pollInterval(10, TimeUnit.MILLISECONDS)
.untilAsserted(() ->
assertThatExceptionOfType(CancellationException.class).isThrownBy(() ->
future2.get(1000, TimeUnit.MILLISECONDS)
));
}
@Test
@ -171,10 +178,8 @@ public abstract class AbstractSchedulingTaskExecutorTests {
@Test
public void submitCallableWithGetAfterShutdown() throws Exception {
TestCallable task1 = new TestCallable(-1);
Future<?> future1 = executor.submit(task1);
TestCallable task2 = new TestCallable(-1);
Future<?> future2 = executor.submit(task2);
Future<?> future1 = executor.submit(new TestCallable(-1));
Future<?> future2 = executor.submit(new TestCallable(-1));
shutdownExecutor();
assertThatExceptionOfType(CancellationException.class).isThrownBy(() -> {
future1.get(1000, TimeUnit.MILLISECONDS);
@ -213,14 +218,13 @@ public abstract class AbstractSchedulingTaskExecutorTests {
@Test
public void submitListenableCallableWithGetAfterShutdown() throws Exception {
TestCallable task1 = new TestCallable(-1);
ListenableFuture<?> future1 = executor.submitListenable(task1);
TestCallable task2 = new TestCallable(-1);
ListenableFuture<?> future2 = executor.submitListenable(task2);
ListenableFuture<?> future1 = executor.submitListenable(new TestCallable(-1));
ListenableFuture<?> future2 = executor.submitListenable(new TestCallable(-1));
shutdownExecutor();
future1.get(1000, TimeUnit.MILLISECONDS);
assertThatExceptionOfType(CancellationException.class).isThrownBy(() ->
future2.get(1000, TimeUnit.MILLISECONDS));
assertThatExceptionOfType(CancellationException.class).isThrownBy(() -> {
future1.get(1000, TimeUnit.MILLISECONDS);
future2.get(1000, TimeUnit.MILLISECONDS);
});
}