1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.shared.utils.cli;
20
21 import java.io.ByteArrayInputStream;
22 import java.io.ByteArrayOutputStream;
23 import java.io.IOException;
24
25 import org.junit.Test;
26
27 import static org.junit.Assert.assertEquals;
28 import static org.junit.Assert.assertNull;
29
30 public class StreamPollFeederTest {
31
32 @Test
33 public void waitUntilFeederDoneOnInputStream() throws Exception {
34
35 ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
36 StreamPollFeeder streamPollFeeder = new StreamPollFeeder(System.in, outputStream);
37
38
39 streamPollFeeder.start();
40
41
42 Thread.sleep(100);
43
44
45 streamPollFeeder.waitUntilDone();
46 assertNull(streamPollFeeder.getException());
47 }
48
49 @Test
50 public void dataShouldBeCopied() throws InterruptedException, IOException {
51
52 StringBuilder TEST_DATA = new StringBuilder();
53 for (int i = 0; i < 100; i++) {
54 TEST_DATA.append("TestData");
55 }
56
57 ByteArrayInputStream inputStream =
58 new ByteArrayInputStream(TEST_DATA.toString().getBytes());
59 ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
60
61 StreamPollFeeder streamPollFeeder = new StreamPollFeeder(inputStream, outputStream);
62
63 streamPollFeeder.start();
64
65
66 while (outputStream.size() < TEST_DATA.length()) {
67 Thread.sleep(100);
68 }
69
70
71 streamPollFeeder.waitUntilDone();
72 assertNull(streamPollFeeder.getException());
73
74 assertEquals(TEST_DATA.toString(), outputStream.toString());
75 }
76 }