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.assertSame;
20 import static org.junit.jupiter.api.Assertions.assertThrows;
21
22 import org.junit.jupiter.api.Test;
23
24
25
26
27
28 class NullWriterTest {
29
30 private static final String TEST_STRING = "ABC";
31 private static final char[] TEST_CHARS = TEST_STRING.toCharArray();
32
33 @Test
34 void testAppendChar() {
35 try (NullWriter writer = NullWriter.INSTANCE) {
36 assertSame(writer, writer.append('X'));
37 }
38 }
39
40 @Test
41 void testAppendCharSequence() {
42 try (NullWriter writer = NullWriter.INSTANCE) {
43 assertSame(writer, writer.append(TEST_STRING));
44 assertSame(writer, writer.append(null));
45 }
46 }
47
48 @Test
49 void testAppendCharSequenceWithRange() {
50 try (NullWriter writer = NullWriter.INSTANCE) {
51 assertSame(writer, writer.append(TEST_STRING, 1, 2));
52 assertSame(writer, writer.append(null, 0, 4));
53
54 assertThrows(IndexOutOfBoundsException.class, () -> writer.append(TEST_STRING, -1, 2));
55 assertThrows(IndexOutOfBoundsException.class, () -> writer.append(TEST_STRING, 1, 5));
56 assertThrows(IndexOutOfBoundsException.class, () -> writer.append(TEST_STRING, 2, 1));
57 }
58 }
59
60 @Test
61 void testCloseNoOp() {
62 final NullWriter writer = NullWriter.INSTANCE;
63 writer.close();
64 writer.write(TEST_CHARS);
65 }
66
67 @Test
68 void testFlush() {
69 try (NullWriter writer = NullWriter.INSTANCE) {
70 writer.flush();
71 }
72 }
73
74 @Test
75 void testWriteCharArray() {
76 try (NullWriter writer = NullWriter.INSTANCE) {
77 writer.write(TEST_CHARS);
78
79 assertThrows(NullPointerException.class, () -> writer.write((char[]) null));
80 }
81 }
82
83 @Test
84 void testWriteCharArrayWithOffset() {
85 try (NullWriter writer = NullWriter.INSTANCE) {
86 writer.write(TEST_CHARS, 1, 2);
87
88 assertThrows(IndexOutOfBoundsException.class, () -> writer.write(TEST_CHARS, -1, 0));
89 assertThrows(IndexOutOfBoundsException.class, () -> writer.write(TEST_CHARS, 0, -1));
90 assertThrows(IndexOutOfBoundsException.class, () -> writer.write(TEST_CHARS, 0, 4));
91 assertThrows(NullPointerException.class, () -> writer.write((char[]) null, 0, 0));
92 }
93 }
94
95 @Test
96 void testWriteInt() {
97 try (NullWriter writer = NullWriter.INSTANCE) {
98 writer.write(42);
99 }
100 }
101
102 @Test
103 void testWriteString() {
104 try (NullWriter writer = NullWriter.INSTANCE) {
105 writer.write(TEST_STRING);
106
107 assertThrows(NullPointerException.class, () -> writer.write((String) null));
108 }
109 }
110
111 @Test
112 void testWriteStringWithOffset() {
113 try (NullWriter writer = NullWriter.INSTANCE) {
114 writer.write(TEST_STRING, 1, 1);
115
116 assertThrows(IndexOutOfBoundsException.class, () -> writer.write(TEST_STRING, -1, 0));
117 assertThrows(IndexOutOfBoundsException.class, () -> writer.write(TEST_STRING, 0, -1));
118 assertThrows(IndexOutOfBoundsException.class, () -> writer.write(TEST_STRING, 0, 4));
119 assertThrows(NullPointerException.class, () -> writer.write((String) null, 0, 0));
120 }
121 }
122 }