Skip to content

Commit 50c51d6

Browse files
committed
Add detailed message in test assertion
(cherry picked from commit 506f602)
1 parent 471ff6d commit 50c51d6

File tree

2 files changed

+20
-6
lines changed

2 files changed

+20
-6
lines changed

src/test/java/com/rabbitmq/client/test/TestUtils.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@
3939
import java.util.concurrent.TimeUnit;
4040
import java.util.concurrent.TimeoutException;
4141
import java.util.function.Function;
42+
import java.util.function.Supplier;
43+
4244
import org.assertj.core.api.Assertions;
4345
import org.assertj.core.api.Condition;
4446
import org.junit.jupiter.api.extension.ConditionEvaluationResult;
@@ -130,6 +132,10 @@ public static void waitAtMost(CallableBooleanSupplier condition) {
130132
}
131133

132134
public static void waitAtMost(Duration timeout, CallableBooleanSupplier condition) {
135+
waitAtMost(timeout, condition, null);
136+
}
137+
138+
public static void waitAtMost(Duration timeout, CallableBooleanSupplier condition, Supplier<String> message) {
133139
try {
134140
if (condition.getAsBoolean()) {
135141
return;
@@ -156,7 +162,13 @@ public static void waitAtMost(Duration timeout, CallableBooleanSupplier conditio
156162
}
157163
waitedTime += waitTime;
158164
}
159-
Assertions.fail("Waited " + timeout.getSeconds() + " second(s), condition never got true");
165+
String msg;
166+
if (message == null) {
167+
msg = "Waited " + timeout.getSeconds() + " second(s), condition never got true";
168+
} else {
169+
msg = "Waited " + timeout.getSeconds() + " second(s), " + message.get();
170+
}
171+
Assertions.fail(msg);
160172
}
161173

162174
public static void close(Connection connection) {

src/test/java/com/rabbitmq/client/test/functional/Metrics.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
import com.rabbitmq.client.test.BrokerTestCase;
3131
import com.rabbitmq.client.test.TestUtils;
3232
import com.rabbitmq.tools.Host;
33-
import java.util.UUID;
3433
import org.junit.jupiter.api.Test;
3534

3635
import java.io.IOException;
@@ -313,17 +312,20 @@ public void multiThreadedMetricsStandardConnection(ConnectionFactory connectionF
313312
}
314313

315314

316-
List<Callable<Void>> tasks = new ArrayList<Callable<Void>>();
315+
List<Callable<Void>> tasks = new ArrayList<>();
317316
for(int i = 0; i < nbTasks; i++) {
318317
Channel channelForConsuming = channels[random.nextInt(nbChannels)];
319-
tasks.add(random.nextInt(10)%2 == 0 ?
318+
tasks.add(random.nextInt(10) % 2 == 0 ?
320319
new BasicGetTask(channelForConsuming, true) :
321320
new BasicConsumeTask(channelForConsuming, true));
322321
}
323322
executorService.invokeAll(tasks);
324323

324+
waitAtMost(timeout(), () -> metrics.getPublishedMessages().getCount() == nbOfMessages,
325+
() -> "expecting " + nbOfMessages + " published message(s), got " + metrics.getPublishedMessages().getCount());
325326
assertThat(metrics.getPublishedMessages().getCount()).isEqualTo(nbOfMessages);
326-
waitAtMost(timeout(), () -> metrics.getConsumedMessages().getCount() == nbOfMessages);
327+
waitAtMost(timeout(), () -> metrics.getConsumedMessages().getCount() == nbOfMessages,
328+
() -> "expecting " + nbOfMessages + " consumed message(s), got " + metrics.getConsumedMessages().getCount());
327329
assertThat(metrics.getAcknowledgedMessages().getCount()).isEqualTo(0L);
328330

329331
// to remove the listeners
@@ -635,7 +637,7 @@ private void sendMessage(Channel channel) throws IOException {
635637
}
636638

637639
private Duration timeout() {
638-
return Duration.ofSeconds(10);
640+
return Duration.ofSeconds(20);
639641
}
640642

641643
private static class MultipleAckConsumer extends DefaultConsumer {

0 commit comments

Comments
 (0)