Skip to content

Commit ec5e2e1

Browse files
committed
Add ProxyOutputStream tests
Javadoc
1 parent 202ffe2 commit ec5e2e1

File tree

1 file changed

+38
-12
lines changed

1 file changed

+38
-12
lines changed

src/test/java/org/apache/commons/io/output/ProxyOutputStreamTest.java

Lines changed: 38 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -30,29 +30,37 @@
3030
import org.junit.jupiter.api.Test;
3131

3232
/**
33-
* Tests {@link CloseShieldOutputStream}.
33+
* Tests {@link ProxyOutputStream}.
3434
*/
3535
class ProxyOutputStreamTest {
3636

3737
private ByteArrayOutputStream original;
3838

3939
private ProxyOutputStream proxied;
4040

41-
private final AtomicBoolean hit = new AtomicBoolean();
41+
private final AtomicBoolean hitByteArray = new AtomicBoolean();
42+
private final AtomicBoolean hitByteArrayAt = new AtomicBoolean();
43+
private final AtomicBoolean hitInt = new AtomicBoolean();
4244

4345
@BeforeEach
4446
public void setUp() {
4547
original = new ByteArrayOutputStream() {
4648

4749
@Override
4850
public void write(final byte[] ba) {
49-
hit.set(true);
51+
hitByteArray.set(true);
5052
super.write(ba);
5153
}
5254

55+
@Override
56+
public void write(final byte[] b, final int off, final int len) {
57+
hitByteArrayAt.set(true);
58+
super.write(b, off, len);
59+
}
60+
5361
@Override
5462
public synchronized void write(final int ba) {
55-
hit.set(true);
63+
hitInt.set(true);
5664
super.write(ba);
5765
}
5866
};
@@ -67,30 +75,48 @@ void testBuilder() throws Exception {
6775
@SuppressWarnings("resource")
6876
@Test
6977
void testSetReference() throws Exception {
70-
assertFalse(hit.get());
78+
assertFalse(hitByteArray.get());
7179
proxied.setReference(new ByteArrayOutputStream());
7280
proxied.write('y');
73-
assertFalse(hit.get());
81+
assertFalse(hitByteArray.get());
7482
assertEquals(0, original.size());
7583
assertArrayEquals(ArrayUtils.EMPTY_BYTE_ARRAY, original.toByteArray());
7684
}
7785

7886
@Test
79-
void testWrite() throws Exception {
80-
assertFalse(hit.get());
87+
void testWriteByteArray() throws Exception {
88+
assertFalse(hitByteArray.get());
89+
proxied.write(new byte[] { 'y', 'z' });
90+
assertTrue(hitByteArray.get());
91+
assertEquals(2, original.size());
92+
assertArrayEquals(new byte[] { 'y', 'z' }, original.toByteArray());
93+
}
94+
95+
@Test
96+
void testWriteByteArrayAt() throws Exception {
97+
assertFalse(hitByteArrayAt.get());
98+
proxied.write(new byte[] { 'y', 'z' }, 1, 1);
99+
assertTrue(hitByteArrayAt.get());
100+
assertEquals(1, original.size());
101+
assertArrayEquals(new byte[] { 'z' }, original.toByteArray());
102+
}
103+
104+
@Test
105+
void testWriteInt() throws Exception {
106+
assertFalse(hitInt.get());
81107
proxied.write('y');
82-
assertTrue(hit.get());
108+
assertTrue(hitInt.get());
83109
assertEquals(1, original.size());
84110
assertEquals('y', original.toByteArray()[0]);
85111
}
86112

87113
@Test
88114
void testWriteNullArrayProxiesToUnderlying() throws Exception {
89-
assertFalse(hit.get());
115+
assertFalse(hitByteArray.get());
90116
final byte[] ba = null;
91117
assertThrows(NullPointerException.class, () -> original.write(ba));
92-
assertTrue(hit.get());
118+
assertTrue(hitByteArray.get());
93119
assertThrows(NullPointerException.class, () -> proxied.write(ba));
94-
assertTrue(hit.get());
120+
assertTrue(hitByteArray.get());
95121
}
96122
}

0 commit comments

Comments
 (0)