1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.commons.io.build;
19
20 import static org.junit.jupiter.api.Assertions.assertEquals;
21 import static org.junit.jupiter.api.Assertions.assertNotNull;
22 import static org.junit.jupiter.api.Assertions.assertThrows;
23
24 import java.util.Arrays;
25
26 import org.junit.jupiter.api.Test;
27
28
29
30
31 public class AbstractStreamBuilderTest {
32
33 public static class Builder extends AbstractStreamBuilder<char[], Builder> {
34
35 @Override
36 public char[] get() {
37 final char[] arr = new char[getBufferSize()];
38 Arrays.fill(arr, 'a');
39 return arr;
40 }
41
42 }
43
44 private void assertResult(final char[] arr, final int size) {
45 assertNotNull(arr);
46 assertEquals(size, arr.length);
47 for (final char c : arr) {
48 assertEquals('a', c);
49 }
50 }
51
52 protected Builder builder() {
53 return new Builder();
54 }
55
56 @Test
57 public void testBufferSizeChecker() {
58
59 final Builder builder = builder();
60 assertResult(builder.get(), builder.getBufferSize());
61
62 assertThrows(IllegalArgumentException.class, () -> builder().setBufferSizeMax(2).setBufferSize(3));
63
64 assertResult(builder.setBufferSizeMax(2).setBufferSizeMax(0).setBufferSize(3).get(), 3);
65
66 assertResult(builder().setBufferSizeMax(2).setBufferSizeChecker(i -> 100).setBufferSize(3).get(), 100);
67 }
68 }