From 69c45303ab94db54a871085476059e27daa0c44a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ji=C5=99=C3=AD=20Locker?= Date: Mon, 29 Jan 2024 13:57:50 +0100 Subject: [PATCH] Fix flaky SolverManagerTest --- .../org/optaplanner/core/api/solver/SolverManagerTest.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/core/optaplanner-core-impl/src/test/java/org/optaplanner/core/api/solver/SolverManagerTest.java b/core/optaplanner-core-impl/src/test/java/org/optaplanner/core/api/solver/SolverManagerTest.java index 7926a0504f..21b22ff9d8 100644 --- a/core/optaplanner-core-impl/src/test/java/org/optaplanner/core/api/solver/SolverManagerTest.java +++ b/core/optaplanner-core-impl/src/test/java/org/optaplanner/core/api/solver/SolverManagerTest.java @@ -20,6 +20,7 @@ package org.optaplanner.core.api.solver; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatCode; import static org.assertj.core.api.Assertions.assertThatIllegalStateException; import static org.assertj.core.api.Assertions.assertThatThrownBy; import static org.assertj.core.api.Assertions.fail; @@ -208,6 +209,9 @@ void exceptionInConsumer() throws InterruptedException { assertThat(errorInConsumer.get()) .isInstanceOf(IllegalStateException.class) .hasMessage("exceptionInConsumer"); + // Accessing the job's final best solution is necessary to guarantee that the solver is no longer solving. + assertThatCode(solverJob1::getFinalBestSolution).doesNotThrowAnyException(); + // Otherwise, the following assertion could fail. assertThat(solverManager.getSolverStatus(1L)).isEqualTo(NOT_SOLVING); assertThat(solverJob1.getSolverStatus()).isEqualTo(NOT_SOLVING); }