|
1 | 1 | package blackbox.writer; |
2 | 2 |
|
3 | 3 | import static org.assertj.core.api.Assertions.assertThat; |
| 4 | +import static org.assertj.core.api.Assertions.assertThatCode; |
4 | 5 | import static org.assertj.core.api.Assertions.assertThatThrownBy; |
5 | 6 |
|
| 7 | +import java.io.FilterWriter; |
6 | 8 | import java.io.IOException; |
7 | 9 | import java.io.StringWriter; |
8 | 10 | import java.io.UncheckedIOException; |
| 11 | +import java.nio.file.Files; |
9 | 12 | import java.nio.file.Path; |
10 | 13 | import java.util.ArrayList; |
11 | 14 | import java.util.List; |
@@ -260,13 +263,49 @@ void disableBuffer() { |
260 | 263 | assertThat(stringWriter).asString().isEqualTo("foo,bar\n"); |
261 | 264 | } |
262 | 265 |
|
| 266 | + // autoFlush |
| 267 | + |
| 268 | + @Test |
| 269 | + void noAutoFlush() { |
| 270 | + final CsvWriter csvWriter = CsvWriter.builder().build(flushFailWriter()); |
| 271 | + assertThatCode(() -> csvWriter.writeRecord("foo")) |
| 272 | + .doesNotThrowAnyException(); |
| 273 | + } |
| 274 | + |
| 275 | + @Test |
| 276 | + void manualFlush(@TempDir final Path tempDir) throws IOException { |
| 277 | + final Path file = tempDir.resolve("fastcsv.csv"); |
| 278 | + CsvWriter.builder().build(file) |
| 279 | + .writeRecord("foo") |
| 280 | + .flush(); |
| 281 | + |
| 282 | + assertThat(Files.readString(file)) |
| 283 | + .isEqualTo("foo\r\n"); |
| 284 | + } |
| 285 | + |
| 286 | + @Test |
| 287 | + void autoFlush() { |
| 288 | + final CsvWriter csvWriter = CsvWriter.builder().autoFlush(true).build(flushFailWriter()); |
| 289 | + assertThatThrownBy(() -> csvWriter.writeRecord("foo")) |
| 290 | + .isInstanceOf(UnsupportedOperationException.class); |
| 291 | + } |
| 292 | + |
| 293 | + private static FilterWriter flushFailWriter() { |
| 294 | + return new FilterWriter(FilterWriter.nullWriter()) { |
| 295 | + @Override |
| 296 | + public void flush() { |
| 297 | + throw new UnsupportedOperationException(); |
| 298 | + } |
| 299 | + }; |
| 300 | + } |
| 301 | + |
263 | 302 | // toString() |
264 | 303 |
|
265 | 304 | @Test |
266 | 305 | void builderToString() { |
267 | 306 | assertThat(crw).asString() |
268 | 307 | .isEqualTo("CsvWriterBuilder[fieldSeparator=,, quoteCharacter=\", " |
269 | | - + "commentCharacter=#, quoteStrategy=null, lineDelimiter=\n, bufferSize=8192]"); |
| 308 | + + "commentCharacter=#, quoteStrategy=null, lineDelimiter=\n, bufferSize=8192, autoFlush=false]"); |
270 | 309 | } |
271 | 310 |
|
272 | 311 | @Test |
|
0 commit comments