diff --git a/core/src/test/java/org/testcontainers/containers/output/FrameConsumerResultCallbackTest.java b/core/src/test/java/org/testcontainers/containers/output/FrameConsumerResultCallbackTest.java index 298e7a981a0..44f7081eb90 100644 --- a/core/src/test/java/org/testcontainers/containers/output/FrameConsumerResultCallbackTest.java +++ b/core/src/test/java/org/testcontainers/containers/output/FrameConsumerResultCallbackTest.java @@ -20,86 +20,95 @@ public class FrameConsumerResultCallbackTest { private static final String LOG_RESULT = "Тест1\nTest2\nTest3"; @Test - public void passStderrFrameWithoutColors() { + public void passStderrFrameWithoutColors() throws IOException { FrameConsumerResultCallback callback = new FrameConsumerResultCallback(); ToStringConsumer consumer = new ToStringConsumer(); callback.addConsumer(OutputFrame.OutputType.STDERR, consumer); callback.onNext(new Frame(StreamType.STDERR, FRAME_PAYLOAD.getBytes())); + callback.close(); assertThat(consumer.toUtf8String()).isEqualTo(LOG_RESULT); } @Test - public void passStderrFrameWithColors() { + public void passStderrFrameWithColors() throws IOException { FrameConsumerResultCallback callback = new FrameConsumerResultCallback(); ToStringConsumer consumer = new ToStringConsumer().withRemoveAnsiCodes(false); callback.addConsumer(OutputFrame.OutputType.STDERR, consumer); callback.onNext(new Frame(StreamType.STDERR, FRAME_PAYLOAD.getBytes())); + callback.close(); assertThat(consumer.toUtf8String()).isEqualTo(FRAME_PAYLOAD); } @Test - public void passStdoutFrameWithoutColors() { + public void passStdoutFrameWithoutColors() throws IOException { FrameConsumerResultCallback callback = new FrameConsumerResultCallback(); ToStringConsumer consumer = new ToStringConsumer(); callback.addConsumer(OutputFrame.OutputType.STDOUT, consumer); callback.onNext(new Frame(StreamType.STDOUT, FRAME_PAYLOAD.getBytes())); + callback.close(); assertThat(consumer.toUtf8String()).isEqualTo(LOG_RESULT); } @Test - public void passStdoutFrameWithColors() { + public void passStdoutFrameWithColors() throws IOException { FrameConsumerResultCallback callback = new FrameConsumerResultCallback(); ToStringConsumer consumer = new ToStringConsumer().withRemoveAnsiCodes(false); callback.addConsumer(OutputFrame.OutputType.STDOUT, consumer); callback.onNext(new Frame(StreamType.STDOUT, FRAME_PAYLOAD.getBytes())); + callback.close(); assertThat(consumer.toUtf8String()).isEqualTo(FRAME_PAYLOAD); } @Test - public void basicConsumer() { + public void basicConsumer() throws IOException { FrameConsumerResultCallback callback = new FrameConsumerResultCallback(); BasicConsumer consumer = new BasicConsumer(); callback.addConsumer(OutputFrame.OutputType.STDOUT, consumer); callback.onNext(new Frame(StreamType.STDOUT, FRAME_PAYLOAD.getBytes())); + callback.close(); assertThat(consumer.toString()).isEqualTo(LOG_RESULT); } @Test - public void passStdoutNull() { + public void passStdoutNull() throws IOException { FrameConsumerResultCallback callback = new FrameConsumerResultCallback(); ToStringConsumer consumer = new ToStringConsumer().withRemoveAnsiCodes(false); callback.addConsumer(OutputFrame.OutputType.STDOUT, consumer); callback.onNext(new Frame(StreamType.STDOUT, null)); + callback.close(); assertThat(consumer.toUtf8String()).isEqualTo(""); } @Test - public void passStdoutEmptyLine() { + public void passStdoutEmptyLine() throws IOException { String payload = ""; FrameConsumerResultCallback callback = new FrameConsumerResultCallback(); ToStringConsumer consumer = new ToStringConsumer().withRemoveAnsiCodes(false); callback.addConsumer(OutputFrame.OutputType.STDOUT, consumer); callback.onNext(new Frame(StreamType.STDOUT, payload.getBytes())); + callback.close(); assertThat(consumer.toUtf8String()).isEqualTo(payload); } @Test - public void passStdoutSingleLine() { + public void passStdoutSingleLine() throws IOException { String payload = "Test"; FrameConsumerResultCallback callback = new FrameConsumerResultCallback(); ToStringConsumer consumer = new ToStringConsumer().withRemoveAnsiCodes(false); callback.addConsumer(OutputFrame.OutputType.STDOUT, consumer); callback.onNext(new Frame(StreamType.STDOUT, payload.getBytes())); + callback.close(); assertThat(consumer.toUtf8String()).isEqualTo(payload); } @Test - public void passStdoutSingleLineWithNewline() { + public void passStdoutSingleLineWithNewline() throws IOException { String payload = "Test\n"; FrameConsumerResultCallback callback = new FrameConsumerResultCallback(); ToStringConsumer consumer = new ToStringConsumer().withRemoveAnsiCodes(false); callback.addConsumer(OutputFrame.OutputType.STDOUT, consumer); callback.onNext(new Frame(StreamType.STDOUT, payload.getBytes())); + callback.close(); assertThat(consumer.toUtf8String()).isEqualTo(payload); } @@ -218,6 +227,9 @@ private static class BasicConsumer implements Consumer { @Override public void accept(OutputFrame outputFrame) { + if (outputFrame.getType() == OutputFrame.OutputType.END) { + return; + } if (!firstLine) { input.append('\n'); }