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
22 import java.io.IOException;
23 import java.io.OutputStream;
24
25 import org.junit.jupiter.api.BeforeEach;
26 import org.junit.jupiter.api.Test;
27
28
29
30
31 public class BrokenOutputStreamTest {
32
33 private IOException exception;
34
35 private OutputStream stream;
36
37 @BeforeEach
38 public void setUp() {
39 exception = new IOException("test exception");
40 stream = new BrokenOutputStream(exception);
41 }
42
43 @Test
44 public void testClose() {
45 assertEquals(exception, assertThrows(IOException.class, () -> stream.close()));
46 }
47
48 @Test
49 public void testFlush() {
50 assertEquals(exception, assertThrows(IOException.class, () -> stream.flush()));
51 }
52
53 @Test
54 public void testTryWithResources() {
55 final IOException thrown = assertThrows(IOException.class, () -> {
56 try (OutputStream newStream = new BrokenOutputStream()) {
57 newStream.write(1);
58 }
59 });
60 assertEquals("Broken output stream", thrown.getMessage());
61
62 final Throwable[] suppressed = thrown.getSuppressed();
63 assertEquals(1, suppressed.length);
64 assertEquals(IOException.class, suppressed[0].getClass());
65 assertEquals("Broken output stream", suppressed[0].getMessage());
66 }
67
68 @Test
69 public void testWriteByteArray() {
70 assertEquals(exception, assertThrows(IOException.class, () -> stream.write(new byte[1])));
71 }
72
73 @Test
74 public void testWriteByteArrayIndexed() {
75 assertEquals(exception, assertThrows(IOException.class, () -> stream.write(new byte[1], 0, 1)));
76 }
77
78 @Test
79 public void testWriteInt() {
80 assertEquals(exception, assertThrows(IOException.class, () -> stream.write(1)));
81 }
82
83 }