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 NoCloseWriter_Test extends TestBase {
27
28
29
30
31 @Test void a01_writeInt() throws IOException {
32 var sw = new StringWriter();
33 var wrapper = new NoCloseWriter(sw);
34 wrapper.write(65);
35 wrapper.write(66);
36 assertEquals("AB", sw.toString());
37 }
38
39 @Test void a02_writeString() throws IOException {
40 var sw = new StringWriter();
41 var wrapper = new NoCloseWriter(sw);
42 wrapper.write("test");
43 assertEquals("test", sw.toString());
44 }
45
46 @Test void a03_writeStringWithOffset() throws IOException {
47 var sw = new StringWriter();
48 var wrapper = new NoCloseWriter(sw);
49 wrapper.write("hello", 1, 3);
50 assertEquals("ell", sw.toString());
51 }
52
53 @Test void a04_writeCharArray() throws IOException {
54 var sw = new StringWriter();
55 var wrapper = new NoCloseWriter(sw);
56 wrapper.write("test".toCharArray());
57 assertEquals("test", sw.toString());
58 }
59
60 @Test void a05_writeCharArrayWithOffset() throws IOException {
61 var sw = new StringWriter();
62 var wrapper = new NoCloseWriter(sw);
63 wrapper.write("hello".toCharArray(), 1, 3);
64 assertEquals("ell", sw.toString());
65 }
66
67
68
69
70 @Test void b01_appendChar() throws IOException {
71 var sw = new StringWriter();
72 var wrapper = new NoCloseWriter(sw);
73 var result = wrapper.append('a');
74 assertSame(sw, result);
75 wrapper.append('b');
76 assertEquals("ab", sw.toString());
77 }
78
79 @Test void b02_appendCharSequence() throws IOException {
80 var sw = new StringWriter();
81 var wrapper = new NoCloseWriter(sw);
82 var result = wrapper.append("test");
83 assertSame(sw, result);
84 assertEquals("test", sw.toString());
85 }
86
87 @Test void b03_appendCharSequenceWithRange() throws IOException {
88 var sw = new StringWriter();
89 var wrapper = new NoCloseWriter(sw);
90 var result = wrapper.append("hello", 1, 4);
91 assertSame(sw, result);
92 assertEquals("ell", sw.toString());
93 }
94
95 @Test void b04_appendNull() throws IOException {
96 var sw = new StringWriter();
97 var wrapper = new NoCloseWriter(sw);
98 wrapper.append((CharSequence)null);
99 assertEquals("null", sw.toString());
100 }
101
102
103
104
105 @Test void c01_flush() throws IOException {
106 var sw = new StringWriter();
107 var wrapper = new NoCloseWriter(sw);
108 wrapper.write("test");
109 wrapper.flush();
110 assertEquals("test", sw.toString());
111 }
112
113 @Test void c02_flush_multipleTimes() throws IOException {
114 var sw = new StringWriter();
115 var wrapper = new NoCloseWriter(sw);
116 wrapper.flush();
117 wrapper.flush();
118 wrapper.flush();
119
120 }
121
122
123
124
125 @Test void d01_close_doesNotClose() throws IOException {
126 var sw = new StringWriter();
127 var wrapper = new NoCloseWriter(sw);
128 wrapper.write("test");
129 wrapper.close();
130
131 wrapper.write("more");
132 assertEquals("testmore", sw.toString());
133 }
134
135 @Test void d02_close_flushes() throws IOException {
136 var sw = new StringWriter();
137 var wrapper = new NoCloseWriter(sw);
138 wrapper.write("test");
139 wrapper.close();
140
141 assertEquals("test", sw.toString());
142 }
143
144 @Test void d03_close_multipleTimes() throws IOException {
145 var sw = new StringWriter();
146 var wrapper = new NoCloseWriter(sw);
147 wrapper.close();
148 wrapper.close();
149 wrapper.close();
150
151 }
152
153
154
155
156 @Test void e01_toString() {
157 var sw = new StringWriter();
158 sw.write("test");
159 var wrapper = new NoCloseWriter(sw);
160 assertEquals("test", wrapper.toString());
161 }
162
163
164
165
166 @Test void f01_combinedOperations() throws IOException {
167 var sw = new StringWriter();
168 var wrapper = new NoCloseWriter(sw);
169 wrapper.write('H');
170 wrapper.write("ello");
171 wrapper.append(' ');
172 wrapper.append("World");
173 wrapper.write("!", 0, 1);
174 wrapper.flush();
175 wrapper.close();
176 wrapper.write('!');
177 assertEquals("Hello World!!", sw.toString());
178 }
179 }
180