Commit 9a97e1b0 authored by Andy Wilkinson's avatar Andy Wilkinson

Drop use of OutputCapture in SampleKafkaApplicationTests

Closes gh-15432
parent 83de570f
...@@ -16,15 +16,25 @@ ...@@ -16,15 +16,25 @@
package sample.kafka; package sample.kafka;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
import org.springframework.kafka.annotation.KafkaListener; import org.springframework.kafka.annotation.KafkaListener;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@Component @Component
class Consumer { class Consumer {
private final List<SampleMessage> messages = new CopyOnWriteArrayList<>();
@KafkaListener(topics = "testTopic") @KafkaListener(topics = "testTopic")
public void processMessage(SampleMessage message) { public void processMessage(SampleMessage message) {
this.messages.add(message);
System.out.println("Received sample message [" + message + "]"); System.out.println("Received sample message [" + message + "]");
} }
List<SampleMessage> getMessages() {
return this.messages;
}
} }
...@@ -15,11 +15,12 @@ ...@@ -15,11 +15,12 @@
*/ */
package sample.kafka; package sample.kafka;
import java.util.List;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.extension.OutputCapture;
import org.springframework.kafka.test.context.EmbeddedKafka; import org.springframework.kafka.test.context.EmbeddedKafka;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
...@@ -36,17 +37,15 @@ import static org.assertj.core.api.Assertions.assertThat; ...@@ -36,17 +37,15 @@ import static org.assertj.core.api.Assertions.assertThat;
@EmbeddedKafka @EmbeddedKafka
public class SampleKafkaApplicationTests { public class SampleKafkaApplicationTests {
@RegisterExtension
OutputCapture output = new OutputCapture();
@Test @Test
public void testVanillaExchange() throws Exception { public void testVanillaExchange(@Autowired Consumer consumer) throws Exception {
long end = System.currentTimeMillis() + 10000; long end = System.currentTimeMillis() + 10000;
while (!this.output.toString().contains("A simple test message") List<SampleMessage> messages = consumer.getMessages();
&& System.currentTimeMillis() < end) { while (messages.size() != 1 && System.currentTimeMillis() < end) {
Thread.sleep(250); Thread.sleep(250);
} }
assertThat(this.output).contains("A simple test message"); assertThat(messages).hasSize(1);
assertThat(messages.get(0).getMessage()).isEqualTo("A simple test message");
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment