1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.lang3;
18
19 import static org.junit.jupiter.api.Assertions.assertFalse;
20 import static org.junit.jupiter.api.Assertions.assertTrue;
21
22 import org.junit.jupiter.api.Test;
23
24
25
26
27
28 public class StringUtilsStartsEndsWithTest extends AbstractLangTest {
29 private static final String foo = "foo";
30 private static final String bar = "bar";
31 private static final String foobar = "foobar";
32 private static final String FOO = "FOO";
33 private static final String BAR = "BAR";
34 private static final String FOOBAR = "FOOBAR";
35
36
37
38
39
40 @Test
41 public void testEndsWith() {
42 assertTrue(StringUtils.endsWith(null, null), "endsWith(null, null)");
43 assertFalse(StringUtils.endsWith(FOOBAR, null), "endsWith(FOOBAR, null)");
44 assertFalse(StringUtils.endsWith(null, FOO), "endsWith(null, FOO)");
45 assertTrue(StringUtils.endsWith(FOOBAR, ""), "endsWith(FOOBAR, \"\")");
46
47 assertFalse(StringUtils.endsWith(foobar, foo), "endsWith(foobar, foo)");
48 assertFalse(StringUtils.endsWith(FOOBAR, FOO), "endsWith(FOOBAR, FOO)");
49 assertFalse(StringUtils.endsWith(foobar, FOO), "endsWith(foobar, FOO)");
50 assertFalse(StringUtils.endsWith(FOOBAR, foo), "endsWith(FOOBAR, foo)");
51
52 assertFalse(StringUtils.endsWith(foo, foobar), "endsWith(foo, foobar)");
53 assertFalse(StringUtils.endsWith(bar, foobar), "endsWith(foo, foobar)");
54
55 assertTrue(StringUtils.endsWith(foobar, bar), "endsWith(foobar, bar)");
56 assertTrue(StringUtils.endsWith(FOOBAR, BAR), "endsWith(FOOBAR, BAR)");
57 assertFalse(StringUtils.endsWith(foobar, BAR), "endsWith(foobar, BAR)");
58 assertFalse(StringUtils.endsWith(FOOBAR, bar), "endsWith(FOOBAR, bar)");
59
60
61 assertTrue(StringUtils.endsWith("\u03B1\u03B2\u03B3\u03B4", "\u03B4"),
62 "endsWith(\u03B1\u03B2\u03B3\u03B4, \u03B4)");
63
64 assertFalse(StringUtils.endsWith("\u03B1\u03B2\u03B3\u03B4", "\u03B3\u0394"),
65 "endsWith(\u03B1\u03B2\u03B3\u03B4, \u03B3\u0394)");
66 }
67
68 @Test
69 public void testEndsWithAny() {
70 assertFalse(StringUtils.endsWithAny(null, (String) null), "StringUtils.endsWithAny(null, null)");
71 assertFalse(StringUtils.endsWithAny(null, "abc"), "StringUtils.endsWithAny(null, new String[] {abc})");
72 assertFalse(StringUtils.endsWithAny("abcxyz", (String) null), "StringUtils.endsWithAny(abcxyz, null)");
73 assertTrue(StringUtils.endsWithAny("abcxyz", ""), "StringUtils.endsWithAny(abcxyz, new String[] {\"\"})");
74 assertTrue(StringUtils.endsWithAny("abcxyz", "xyz"), "StringUtils.endsWithAny(abcxyz, new String[] {xyz})");
75 assertTrue(StringUtils.endsWithAny("abcxyz", null, "xyz", "abc"), "StringUtils.endsWithAny(abcxyz, new String[] {null, xyz, abc})");
76 assertFalse(StringUtils.endsWithAny("defg", null, "xyz", "abc"), "StringUtils.endsWithAny(defg, new String[] {null, xyz, abc})");
77 assertTrue(StringUtils.endsWithAny("abcXYZ", "def", "XYZ"));
78 assertFalse(StringUtils.endsWithAny("abcXYZ", "def", "xyz"));
79 assertTrue(StringUtils.endsWithAny("abcXYZ", "def", "YZ"));
80
81
82
83
84
85
86
87
88
89 assertFalse(StringUtils.endsWithAny("abcXYZ", (CharSequence) null));
90 assertFalse(StringUtils.endsWithAny("abcXYZ", (CharSequence[]) null));
91 assertTrue(StringUtils.endsWithAny("abcXYZ", ""));
92
93 assertTrue(StringUtils.endsWithAny("abcxyz", new StringBuilder("abc"), new StringBuffer("xyz")), "StringUtils.endsWithAny(abcxyz, StringBuilder(abc), StringBuffer(xyz))");
94 assertTrue(StringUtils.endsWithAny(new StringBuffer("abcxyz"), new StringBuilder("abc"), new StringBuffer("xyz")), "StringUtils.endsWithAny(StringBuffer(abcxyz), StringBuilder(abc), StringBuffer(xyz))");
95 }
96
97
98
99
100 @Test
101 public void testEndsWithIgnoreCase() {
102 assertTrue(StringUtils.endsWithIgnoreCase(null, null), "endsWithIgnoreCase(null, null)");
103 assertFalse(StringUtils.endsWithIgnoreCase(FOOBAR, null), "endsWithIgnoreCase(FOOBAR, null)");
104 assertFalse(StringUtils.endsWithIgnoreCase(null, FOO), "endsWithIgnoreCase(null, FOO)");
105 assertTrue(StringUtils.endsWithIgnoreCase(FOOBAR, ""), "endsWithIgnoreCase(FOOBAR, \"\")");
106
107 assertFalse(StringUtils.endsWithIgnoreCase(foobar, foo), "endsWithIgnoreCase(foobar, foo)");
108 assertFalse(StringUtils.endsWithIgnoreCase(FOOBAR, FOO), "endsWithIgnoreCase(FOOBAR, FOO)");
109 assertFalse(StringUtils.endsWithIgnoreCase(foobar, FOO), "endsWithIgnoreCase(foobar, FOO)");
110 assertFalse(StringUtils.endsWithIgnoreCase(FOOBAR, foo), "endsWithIgnoreCase(FOOBAR, foo)");
111
112 assertFalse(StringUtils.endsWithIgnoreCase(foo, foobar), "endsWithIgnoreCase(foo, foobar)");
113 assertFalse(StringUtils.endsWithIgnoreCase(bar, foobar), "endsWithIgnoreCase(foo, foobar)");
114
115 assertTrue(StringUtils.endsWithIgnoreCase(foobar, bar), "endsWithIgnoreCase(foobar, bar)");
116 assertTrue(StringUtils.endsWithIgnoreCase(FOOBAR, BAR), "endsWithIgnoreCase(FOOBAR, BAR)");
117 assertTrue(StringUtils.endsWithIgnoreCase(foobar, BAR), "endsWithIgnoreCase(foobar, BAR)");
118 assertTrue(StringUtils.endsWithIgnoreCase(FOOBAR, bar), "endsWithIgnoreCase(FOOBAR, bar)");
119
120
121 assertTrue(StringUtils.endsWithIgnoreCase("abcdef", "def"));
122 assertTrue(StringUtils.endsWithIgnoreCase("ABCDEF", "def"));
123 assertFalse(StringUtils.endsWithIgnoreCase("ABCDEF", "cde"));
124
125
126 assertTrue(StringUtils.endsWithIgnoreCase("\u03B1\u03B2\u03B3\u03B4", "\u0394"),
127 "endsWith(\u03B1\u03B2\u03B3\u03B4, \u0394)");
128
129 assertFalse(StringUtils.endsWithIgnoreCase("\u03B1\u03B2\u03B3\u03B4", "\u0393"),
130 "endsWith(\u03B1\u03B2\u03B3\u03B4, \u0393)");
131 }
132
133
134
135
136
137 @Test
138 public void testStartsWith() {
139 assertTrue(StringUtils.startsWith(null, null), "startsWith(null, null)");
140 assertFalse(StringUtils.startsWith(FOOBAR, null), "startsWith(FOOBAR, null)");
141 assertFalse(StringUtils.startsWith(null, FOO), "startsWith(null, FOO)");
142 assertTrue(StringUtils.startsWith(FOOBAR, ""), "startsWith(FOOBAR, \"\")");
143
144 assertTrue(StringUtils.startsWith(foobar, foo), "startsWith(foobar, foo)");
145 assertTrue(StringUtils.startsWith(FOOBAR, FOO), "startsWith(FOOBAR, FOO)");
146 assertFalse(StringUtils.startsWith(foobar, FOO), "startsWith(foobar, FOO)");
147 assertFalse(StringUtils.startsWith(FOOBAR, foo), "startsWith(FOOBAR, foo)");
148
149 assertFalse(StringUtils.startsWith(foo, foobar), "startsWith(foo, foobar)");
150 assertFalse(StringUtils.startsWith(bar, foobar), "startsWith(foo, foobar)");
151
152 assertFalse(StringUtils.startsWith(foobar, bar), "startsWith(foobar, bar)");
153 assertFalse(StringUtils.startsWith(FOOBAR, BAR), "startsWith(FOOBAR, BAR)");
154 assertFalse(StringUtils.startsWith(foobar, BAR), "startsWith(foobar, BAR)");
155 assertFalse(StringUtils.startsWith(FOOBAR, bar), "startsWith(FOOBAR, bar)");
156 }
157
158 @Test
159 public void testStartsWithAny() {
160 assertFalse(StringUtils.startsWithAny(null, (String[]) null));
161 assertFalse(StringUtils.startsWithAny(null, "abc"));
162 assertFalse(StringUtils.startsWithAny("abcxyz", (String[]) null));
163 assertFalse(StringUtils.startsWithAny("abcxyz"));
164 assertTrue(StringUtils.startsWithAny("abcxyz", "abc"));
165 assertTrue(StringUtils.startsWithAny("abcxyz", null, "xyz", "abc"));
166 assertFalse(StringUtils.startsWithAny("abcxyz", null, "xyz", "abcd"));
167 assertTrue(StringUtils.startsWithAny("abcxyz", ""));
168 assertFalse(StringUtils.startsWithAny("abcxyz", null, "xyz", "ABCX"));
169 assertFalse(StringUtils.startsWithAny("ABCXYZ", null, "xyz", "abc"));
170
171 assertTrue(StringUtils.startsWithAny("abcxyz", new StringBuilder("xyz"), new StringBuffer("abc")), "StringUtils.startsWithAny(abcxyz, StringBuilder(xyz), StringBuffer(abc))");
172 assertTrue(StringUtils.startsWithAny(new StringBuffer("abcxyz"), new StringBuilder("xyz"), new StringBuffer("abc")), "StringUtils.startsWithAny(StringBuffer(abcxyz), StringBuilder(xyz), StringBuffer(abc))");
173 }
174
175
176
177
178 @Test
179 public void testStartsWithIgnoreCase() {
180 assertTrue(StringUtils.startsWithIgnoreCase(null, null), "startsWithIgnoreCase(null, null)");
181 assertFalse(StringUtils.startsWithIgnoreCase(FOOBAR, null), "startsWithIgnoreCase(FOOBAR, null)");
182 assertFalse(StringUtils.startsWithIgnoreCase(null, FOO), "startsWithIgnoreCase(null, FOO)");
183 assertTrue(StringUtils.startsWithIgnoreCase(FOOBAR, ""), "startsWithIgnoreCase(FOOBAR, \"\")");
184
185 assertTrue(StringUtils.startsWithIgnoreCase(foobar, foo), "startsWithIgnoreCase(foobar, foo)");
186 assertTrue(StringUtils.startsWithIgnoreCase(FOOBAR, FOO), "startsWithIgnoreCase(FOOBAR, FOO)");
187 assertTrue(StringUtils.startsWithIgnoreCase(foobar, FOO), "startsWithIgnoreCase(foobar, FOO)");
188 assertTrue(StringUtils.startsWithIgnoreCase(FOOBAR, foo), "startsWithIgnoreCase(FOOBAR, foo)");
189
190 assertFalse(StringUtils.startsWithIgnoreCase(foo, foobar), "startsWithIgnoreCase(foo, foobar)");
191 assertFalse(StringUtils.startsWithIgnoreCase(bar, foobar), "startsWithIgnoreCase(foo, foobar)");
192
193 assertFalse(StringUtils.startsWithIgnoreCase(foobar, bar), "startsWithIgnoreCase(foobar, bar)");
194 assertFalse(StringUtils.startsWithIgnoreCase(FOOBAR, BAR), "startsWithIgnoreCase(FOOBAR, BAR)");
195 assertFalse(StringUtils.startsWithIgnoreCase(foobar, BAR), "startsWithIgnoreCase(foobar, BAR)");
196 assertFalse(StringUtils.startsWithIgnoreCase(FOOBAR, bar), "startsWithIgnoreCase(FOOBAR, bar)");
197 }
198
199
200 }