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.assertThrows;
21 import static org.mockito.Mockito.never;
22 import static org.mockito.Mockito.spy;
23 import static org.mockito.Mockito.verify;
24
25 import java.io.IOException;
26 import java.io.Writer;
27
28 import org.junit.jupiter.api.BeforeEach;
29 import org.junit.jupiter.api.Test;
30
31
32
33
34 public class CloseShieldWriterTest {
35
36 private StringBuilderWriter original;
37
38 private Writer shielded;
39
40 @SuppressWarnings("resource")
41 @BeforeEach
42 public void setUp() {
43 original = spy(new StringBuilderWriter());
44 shielded = CloseShieldWriter.wrap(original);
45 }
46
47 @Test
48 public void testClose() throws IOException {
49 shielded.close();
50 verify(original, never()).close();
51 assertThrows(IOException.class, () -> shielded.write('x'), "write(c)");
52 original.write('y');
53 assertEquals(1, original.getBuilder().length());
54 assertEquals('y', original.toString().charAt(0));
55 }
56
57 }