Skip to content

Commit 1f55ae1

Browse files
Claudenwslachiewicz
authored andcommitted
added tests, fixed one bug
1 parent 2b68c66 commit 1f55ae1

File tree

4 files changed

+84
-1
lines changed

4 files changed

+84
-1
lines changed

src/main/java/org/codehaus/plexus/util/MatchPattern.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ private MatchPattern(String source, String separator) {
6363
* @return the source string without Ant or Regex pattern markers.
6464
*/
6565
public String getSource() {
66-
return source;
66+
return regexPattern == null ? source : regexPattern;
6767
}
6868

6969
public boolean matchPath(String str, boolean isCaseSensitive) {

src/test/java/org/codehaus/plexus/util/MatchPatternTest.java

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818

1919
import org.junit.jupiter.api.Test;
2020

21+
import static org.junit.jupiter.api.Assertions.assertArrayEquals;
22+
import static org.junit.jupiter.api.Assertions.assertEquals;
2123
import static org.junit.jupiter.api.Assertions.assertFalse;
2224
import static org.junit.jupiter.api.Assertions.assertTrue;
2325

@@ -29,6 +31,20 @@
2931
* @since 3.4.0
3032
*/
3133
public class MatchPatternTest {
34+
35+
/**
36+
* <p>testGetSource</p>
37+
*/
38+
@Test
39+
public void testGetSource() {
40+
MatchPattern mp = MatchPattern.fromString("ABC*");
41+
assertEquals("ABC*", mp.getSource());
42+
mp = MatchPattern.fromString("%ant[some/ABC*]");
43+
assertEquals("some/ABC*", mp.getSource());
44+
mp = MatchPattern.fromString("%regex[[ABC].*]");
45+
assertEquals("[ABC].*", mp.getSource());
46+
}
47+
3248
/**
3349
* <p>testMatchPath.</p>
3450
*
@@ -58,4 +74,20 @@ public void testMatchPatternStart() {
5874
assertFalse(mp.matchPatternStart("XXXX", true));
5975
assertFalse(mp.matchPatternStart("XXXX", false));
6076
}
77+
78+
/**
79+
* <p>testTokenizePathToString.</p>
80+
*/
81+
@Test
82+
public void testTokenizePathToString() {
83+
String[] expected = {"hello", "world"};
84+
String[] actual = MatchPattern.tokenizePathToString("hello/world", "/");
85+
assertArrayEquals(expected, actual);
86+
87+
actual = MatchPattern.tokenizePathToString("/hello/world", "/");
88+
assertArrayEquals(expected, actual);
89+
90+
actual = MatchPattern.tokenizePathToString("/hello/world/", "/");
91+
assertArrayEquals(expected, actual);
92+
}
6193
}

src/test/java/org/codehaus/plexus/util/MatchPatternsTest.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,12 @@
1616
* limitations under the License.
1717
*/
1818

19+
import java.util.Arrays;
20+
import java.util.List;
21+
1922
import org.junit.jupiter.api.Test;
2023

24+
import static org.junit.jupiter.api.Assertions.assertEquals;
2125
import static org.junit.jupiter.api.Assertions.assertFalse;
2226
import static org.junit.jupiter.api.Assertions.assertTrue;
2327

@@ -29,6 +33,17 @@
2933
* @since 3.4.0
3034
*/
3135
public class MatchPatternsTest {
36+
/**
37+
* <p>testGetSource</p>
38+
*/
39+
@Test
40+
public void testGetSources() {
41+
List<String> expected = Arrays.asList("ABC**", "some/ABC*", "[ABC].*");
42+
MatchPatterns from = MatchPatterns.from("ABC**", "%ant[some/ABC*]", "%regex[[ABC].*]");
43+
List<String> actual = from.getSources();
44+
assertEquals(expected, actual);
45+
}
46+
3247
/**
3348
* <p>testMatches.</p>
3449
*

src/test/java/org/codehaus/plexus/util/SelectorUtilsTest.java

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
import org.junit.jupiter.api.Test;
2222

23+
import static org.junit.jupiter.api.Assertions.assertEquals;
2324
import static org.junit.jupiter.api.Assertions.assertFalse;
2425
import static org.junit.jupiter.api.Assertions.assertTrue;
2526

@@ -30,6 +31,41 @@
3031
* @since 3.4.0
3132
*/
3233
public class SelectorUtilsTest {
34+
/**
35+
* <p>testExtractPattern.</p>
36+
*/
37+
@Test
38+
public void testExtractPattern() {
39+
assertEquals("[A-Z].*", SelectorUtils.extractPattern("%regex[[A-Z].*]", "/"));
40+
assertEquals("ABC*", SelectorUtils.extractPattern("%ant[ABC*]", "/"));
41+
assertEquals("some/ABC*", SelectorUtils.extractPattern("%ant[some/ABC*]", "/"));
42+
assertEquals("some\\ABC*", SelectorUtils.extractPattern("%ant[some\\ABC*]", "\\"));
43+
assertEquals("some/ABC*", SelectorUtils.extractPattern("%ant[some\\ABC*]", "/"));
44+
assertEquals("some\\ABC*", SelectorUtils.extractPattern("%ant[some/ABC*]", "\\"));
45+
}
46+
47+
/**
48+
* <p>testIsAntPrefixedPattern.</p>
49+
*/
50+
@Test
51+
public void testIsAntPrefixedPattern() {
52+
assertFalse(SelectorUtils.isAntPrefixedPattern("%ant[A]")); // single char not allowed
53+
assertTrue(SelectorUtils.isAntPrefixedPattern("%ant[AB]"));
54+
assertFalse(SelectorUtils.isAntPrefixedPattern("%ant[]"));
55+
assertFalse(SelectorUtils.isAntPrefixedPattern("*"));
56+
}
57+
58+
/**
59+
* <p>testIsRegexPrefixedPattern.</p>
60+
*/
61+
@Test
62+
public void testIsRegexPrefixedPattern() {
63+
assertFalse(SelectorUtils.isRegexPrefixedPattern("%regex[A]")); // single char not allowed
64+
assertTrue(SelectorUtils.isRegexPrefixedPattern("%regex[.*]"));
65+
assertFalse(SelectorUtils.isRegexPrefixedPattern("%regex[]"));
66+
assertFalse(SelectorUtils.isRegexPrefixedPattern("*"));
67+
}
68+
3369
/**
3470
* <p>testMatchPath_DefaultFileSeparator.</p>
3571
*/

0 commit comments

Comments
 (0)