1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.juneau.commons.io;
18
19 import static org.junit.jupiter.api.Assertions.*;
20
21 import java.io.*;
22
23 import org.apache.juneau.*;
24 import org.junit.jupiter.api.*;
25
26 class NoCloseOutputStream_Test extends TestBase {
27
28
29
30
31 @Test void a01_writeInt() throws IOException {
32 var baos = new ByteArrayOutputStream();
33 var wrapper = new NoCloseOutputStream(baos);
34 wrapper.write(65);
35 wrapper.write(66);
36 assertEquals("AB", baos.toString());
37 }
38
39 @Test void a02_writeByteArray() throws IOException {
40 var baos = new ByteArrayOutputStream();
41 var wrapper = new NoCloseOutputStream(baos);
42 wrapper.write("test".getBytes());
43 assertEquals("test", baos.toString());
44 }
45
46 @Test void a03_writeByteArrayWithOffset() throws IOException {
47 var baos = new ByteArrayOutputStream();
48 var wrapper = new NoCloseOutputStream(baos);
49 var bytes = "hello".getBytes();
50 wrapper.write(bytes, 1, 3);
51 assertEquals("ell", baos.toString());
52 }
53
54
55
56
57 @Test void b01_flush() throws IOException {
58 var baos = new ByteArrayOutputStream();
59 var wrapper = new NoCloseOutputStream(baos);
60 wrapper.write("test".getBytes());
61 wrapper.flush();
62 assertEquals("test", baos.toString());
63 }
64
65 @Test void b02_flush_multipleTimes() throws IOException {
66 var baos = new ByteArrayOutputStream();
67 var wrapper = new NoCloseOutputStream(baos);
68 wrapper.flush();
69 wrapper.flush();
70 wrapper.flush();
71
72 }
73
74
75
76
77 @Test void c01_close_doesNotClose() throws IOException {
78 var baos = new ByteArrayOutputStream();
79 var wrapper = new NoCloseOutputStream(baos);
80 wrapper.write("test".getBytes());
81 wrapper.close();
82
83 wrapper.write("more".getBytes());
84 assertEquals("testmore", baos.toString());
85 }
86
87 @Test void c02_close_flushes() throws IOException {
88 var baos = new ByteArrayOutputStream();
89 var wrapper = new NoCloseOutputStream(baos);
90 wrapper.write("test".getBytes());
91 wrapper.close();
92
93 assertEquals("test", baos.toString());
94 }
95
96 @Test void c03_close_multipleTimes() throws IOException {
97 var baos = new ByteArrayOutputStream();
98 var wrapper = new NoCloseOutputStream(baos);
99 wrapper.close();
100 wrapper.close();
101 wrapper.close();
102
103 }
104
105
106
107
108 @Test void d01_combinedOperations() throws IOException {
109 var baos = new ByteArrayOutputStream();
110 var wrapper = new NoCloseOutputStream(baos);
111 wrapper.write(72);
112 wrapper.write("ello".getBytes());
113 wrapper.write(" World".getBytes(), 0, 6);
114 wrapper.flush();
115 wrapper.close();
116 wrapper.write(33);
117 assertEquals("Hello World!", baos.toString());
118 }
119 }
120