1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.cli.help;
18
19 import static org.junit.jupiter.api.Assertions.assertEquals;
20 import static org.junit.jupiter.api.Assertions.assertTrue;
21
22 import java.util.ArrayList;
23 import java.util.List;
24 import java.util.stream.Stream;
25
26 import org.junit.jupiter.api.Test;
27 import org.junit.jupiter.params.ParameterizedTest;
28 import org.junit.jupiter.params.provider.Arguments;
29 import org.junit.jupiter.params.provider.MethodSource;
30
31 public class TextStyleTests {
32
33 public static Stream<Arguments> padTestData() {
34 final List<Arguments> lst = new ArrayList<>();
35 final TextStyle.Builder builder = TextStyle.builder();
36 builder.setIndent(5);
37 builder.setLeftPad(5);
38 builder.setMinWidth(4);
39 builder.setScalable(true);
40
41
42 builder.setMaxWidth(TextStyle.UNSET_MAX_WIDTH);
43 builder.setAlignment(TextStyle.Alignment.LEFT);
44 lst.add(Arguments.of(builder.get(), "Hello world", " Hello world"));
45
46 builder.setAlignment(TextStyle.Alignment.RIGHT);
47 lst.add(Arguments.of(builder.get(), "Hello world", " Hello world"));
48
49 builder.setAlignment(TextStyle.Alignment.CENTER);
50 lst.add(Arguments.of(builder.get(), "Hello world", " Hello world "));
51
52
53 builder.setMaxWidth(5);
54 builder.setAlignment(TextStyle.Alignment.LEFT);
55 lst.add(Arguments.of(builder.get(), "Hello world", "Hello world"));
56
57 builder.setAlignment(TextStyle.Alignment.RIGHT);
58 lst.add(Arguments.of(builder.get(), "Hello world", "Hello world"));
59
60 builder.setAlignment(TextStyle.Alignment.CENTER);
61 lst.add(Arguments.of(builder.get(), "Hello world", "Hello world"));
62
63
64 builder.setMaxWidth(20);
65 builder.setAlignment(TextStyle.Alignment.LEFT);
66 lst.add(Arguments.of(builder.get(), "Hello world ", " Hello world "));
67
68 builder.setAlignment(TextStyle.Alignment.RIGHT);
69 lst.add(Arguments.of(builder.get(), " Hello world", " Hello world"));
70
71 builder.setAlignment(TextStyle.Alignment.CENTER);
72 lst.add(Arguments.of(builder.get(), " Hello world ", " Hello world "));
73
74
75 builder.setMaxWidth(14);
76 builder.setAlignment(TextStyle.Alignment.LEFT);
77 lst.add(Arguments.of(builder.get(), "Hello world ", "Hello world "));
78
79 builder.setAlignment(TextStyle.Alignment.RIGHT);
80 lst.add(Arguments.of(builder.get(), " Hello world", " Hello world"));
81
82 builder.setAlignment(TextStyle.Alignment.CENTER);
83 lst.add(Arguments.of(builder.get(), " Hello world ", " Hello world "));
84
85 return lst.stream();
86 }
87
88 @Test
89 void testDefaultStyle() {
90 final TextStyle underTest = TextStyle.DEFAULT;
91 assertEquals(TextStyle.Alignment.LEFT, underTest.getAlignment());
92 assertTrue(underTest.isScalable());
93 assertEquals(0, underTest.getLeftPad());
94 assertEquals(0, underTest.getMinWidth());
95 assertEquals(TextStyle.UNSET_MAX_WIDTH, underTest.getMaxWidth());
96 }
97
98 @ParameterizedTest(name = "{index} {0}")
99 @MethodSource("padTestData")
100 void testPad(final TextStyle underTest, final String unindentedString, final String indentedString) {
101 assertEquals(unindentedString, underTest.pad(false, "Hello world"), "Unindented string test failed");
102 assertEquals(indentedString, underTest.pad(true, "Hello world"), "Indented string test failed");
103 }
104 }