1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.io.output;
18
19 import static org.junit.jupiter.api.Assertions.assertEquals;
20 import static org.junit.jupiter.api.Assertions.assertFalse;
21 import static org.junit.jupiter.api.Assertions.assertThrows;
22
23 import java.io.IOException;
24 import java.io.OutputStream;
25
26 import org.junit.jupiter.api.BeforeEach;
27 import org.junit.jupiter.api.Test;
28
29
30
31
32 public class CloseShieldOutputStreamTest {
33
34 private ByteArrayOutputStream original;
35
36 private OutputStream shielded;
37
38 private boolean closed;
39
40 @BeforeEach
41 public void setUp() {
42 original = new ByteArrayOutputStream() {
43 @Override
44 public void close() {
45 closed = true;
46 }
47 };
48 shielded = CloseShieldOutputStream.wrap(original);
49 closed = false;
50 }
51
52 @Test
53 public void testClose() throws IOException {
54 shielded.close();
55 assertFalse(closed, "closed");
56 assertThrows(IOException.class, () -> shielded.write('x'), "write(b)");
57 original.write('y');
58 assertEquals(1, original.size());
59 assertEquals('y', original.toByteArray()[0]);
60 }
61
62 }