Skip to content

Commit f448f97

Browse files
committed
Add ObservableInputStream tests
1 parent 9967366 commit f448f97

1 file changed

Lines changed: 35 additions & 7 deletions

File tree

src/test/java/org/apache/commons/io/input/ObservableInputStreamTest.java

Lines changed: 35 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424

2525
import java.io.ByteArrayInputStream;
2626
import java.io.IOException;
27+
import java.io.InputStream;
2728

2829
import org.apache.commons.io.IOUtils;
2930
import org.apache.commons.io.input.ObservableInputStream.Observer;
@@ -127,23 +128,52 @@ public long getFinishedCount() {
127128

128129
}
129130

131+
private ObservableInputStream brokenObservableInputStream() {
132+
return new ObservableInputStream(BrokenInputStream.INSTANCE);
133+
}
134+
135+
private InputStream createInputStream() {
136+
final byte[] buffer = MessageDigestInputStreamTest.generateRandomByteStream(IOUtils.DEFAULT_BUFFER_SIZE);
137+
return new ObservableInputStream(new ByteArrayInputStream(buffer));
138+
}
139+
140+
@SuppressWarnings("resource")
141+
@Test
142+
public void testAvailableAfterClose() throws Exception {
143+
final InputStream shadow;
144+
try (InputStream in = createInputStream()) {
145+
assertTrue(in.available() > 0);
146+
shadow = in;
147+
}
148+
assertEquals(0, shadow.available());
149+
}
150+
151+
@Test
152+
public void testAvailableAfterOpen() throws Exception {
153+
try (InputStream in = createInputStream()) {
154+
assertTrue(in.available() > 0);
155+
assertNotEquals(IOUtils.EOF, in.read());
156+
assertTrue(in.available() > 0);
157+
}
158+
}
159+
130160
@Test
131161
public void testBrokenInputStreamRead() throws IOException {
132-
try (ObservableInputStream ois = new ObservableInputStream(BrokenInputStream.INSTANCE)) {
162+
try (ObservableInputStream ois = brokenObservableInputStream()) {
133163
assertThrows(IOException.class, ois::read);
134164
}
135165
}
136166

137167
@Test
138168
public void testBrokenInputStreamReadBuffer() throws IOException {
139-
try (ObservableInputStream ois = new ObservableInputStream(BrokenInputStream.INSTANCE)) {
169+
try (ObservableInputStream ois = brokenObservableInputStream()) {
140170
assertThrows(IOException.class, () -> ois.read(new byte[1]));
141171
}
142172
}
143173

144174
@Test
145175
public void testBrokenInputStreamReadSubBuffer() throws IOException {
146-
try (ObservableInputStream ois = new ObservableInputStream(BrokenInputStream.INSTANCE)) {
176+
try (ObservableInputStream ois = brokenObservableInputStream()) {
147177
assertThrows(IOException.class, () -> ois.read(new byte[2], 0, 1));
148178
}
149179
}
@@ -277,10 +307,8 @@ private void testNotificationCallbacks(final int bufferSize) throws IOException
277307
final byte[] buffer = IOUtils.byteArray();
278308
final LengthObserver lengthObserver = new LengthObserver();
279309
final MethodCountObserver methodCountObserver = new MethodCountObserver();
280-
try (ObservableInputStream ois = new ObservableInputStream(new ByteArrayInputStream(buffer),
281-
lengthObserver, methodCountObserver)) {
282-
assertEquals(IOUtils.DEFAULT_BUFFER_SIZE,
283-
IOUtils.copy(ois, NullOutputStream.INSTANCE, bufferSize));
310+
try (ObservableInputStream ois = new ObservableInputStream(new ByteArrayInputStream(buffer), lengthObserver, methodCountObserver)) {
311+
assertEquals(IOUtils.DEFAULT_BUFFER_SIZE, IOUtils.copy(ois, NullOutputStream.INSTANCE, bufferSize));
284312
}
285313
assertEquals(IOUtils.DEFAULT_BUFFER_SIZE, lengthObserver.getTotal());
286314
assertEquals(1, methodCountObserver.getClosedCount());

0 commit comments

Comments
 (0)