Skip to content

Commit 506f602

Browse files
committed
Add detailed message in test assertion
1 parent 89bbb0a commit 506f602

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;
@@ -119,6 +121,10 @@ public static void waitAtMost(CallableBooleanSupplier condition) {
119121
}
120122

121123
public static void waitAtMost(Duration timeout, CallableBooleanSupplier condition) {
124+
waitAtMost(timeout, condition, null);
125+
}
126+
127+
public static void waitAtMost(Duration timeout, CallableBooleanSupplier condition, Supplier<String> message) {
122128
try {
123129
if (condition.getAsBoolean()) {
124130
return;
@@ -145,7 +151,13 @@ public static void waitAtMost(Duration timeout, CallableBooleanSupplier conditio
145151
}
146152
waitedTime += waitTime;
147153
}
148-
Assertions.fail("Waited " + timeout.getSeconds() + " second(s), condition never got true");
154+
String msg;
155+
if (message == null) {
156+
msg = "Waited " + timeout.getSeconds() + " second(s), condition never got true";
157+
} else {
158+
msg = "Waited " + timeout.getSeconds() + " second(s), " + message.get();
159+
}
160+
Assertions.fail(msg);
149161
}
150162

151163
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;
@@ -318,17 +317,20 @@ public void multiThreadedMetricsStandardConnection(ConnectionFactory connectionF
318317
}
319318

320319

321-
List<Callable<Void>> tasks = new ArrayList<Callable<Void>>();
320+
List<Callable<Void>> tasks = new ArrayList<>();
322321
for(int i = 0; i < nbTasks; i++) {
323322
Channel channelForConsuming = channels[random.nextInt(nbChannels)];
324-
tasks.add(random.nextInt(10)%2 == 0 ?
323+
tasks.add(random.nextInt(10) % 2 == 0 ?
325324
new BasicGetTask(channelForConsuming, true) :
326325
new BasicConsumeTask(channelForConsuming, true));
327326
}
328327
executorService.invokeAll(tasks);
329328

329+
waitAtMost(timeout(), () -> metrics.getPublishedMessages().getCount() == nbOfMessages,
330+
() -> "expecting " + nbOfMessages + " published message(s), got " + metrics.getPublishedMessages().getCount());
330331
assertThat(metrics.getPublishedMessages().getCount()).isEqualTo(nbOfMessages);
331-
waitAtMost(timeout(), () -> metrics.getConsumedMessages().getCount() == nbOfMessages);
332+
waitAtMost(timeout(), () -> metrics.getConsumedMessages().getCount() == nbOfMessages,
333+
() -> "expecting " + nbOfMessages + " consumed message(s), got " + metrics.getConsumedMessages().getCount());
332334
assertThat(metrics.getAcknowledgedMessages().getCount()).isEqualTo(0L);
333335

334336
// to remove the listeners
@@ -640,7 +642,7 @@ private void sendMessage(Channel channel) throws IOException {
640642
}
641643

642644
private Duration timeout() {
643-
return Duration.ofSeconds(10);
645+
return Duration.ofSeconds(20);
644646
}
645647

646648
private static class MultipleAckConsumer extends DefaultConsumer {

0 commit comments

Comments
 (0)