Skip to content

Commit 5c1b97b

Browse files
Claudenwslachiewicz
authored andcommitted
added tests, fixed one bug
1 parent 0635631 commit 5c1b97b

File tree

4 files changed

+85
-1
lines changed

4 files changed

+85
-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
@@ -65,7 +65,7 @@ private MatchPattern( String source, String separator )
6565
* @return the source string without Ant or Regex pattern markers.
6666
*/
6767
public String getSource() {
68-
return source;
68+
return regexPattern == null ? source : regexPattern;
6969
}
7070

7171
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
@@ -16,6 +16,8 @@
1616
* limitations under the License.
1717
*/
1818

19+
import static org.junit.Assert.assertArrayEquals;
20+
import static org.junit.Assert.assertEquals;
1921
import static org.junit.Assert.assertFalse;
2022
import static org.junit.Assert.assertTrue;
2123

@@ -30,6 +32,20 @@
3032
*/
3133
public class MatchPatternTest
3234
{
35+
/**
36+
* <p>testGetSource</p>
37+
*/
38+
@Test
39+
public void testGetSource()
40+
{
41+
MatchPattern mp = MatchPattern.fromString( "ABC*" );
42+
assertEquals("ABC*", mp.getSource());
43+
mp = MatchPattern.fromString( "%ant[some/ABC*]" );
44+
assertEquals("some/ABC*", mp.getSource());
45+
mp = MatchPattern.fromString( "%regex[[ABC].*]" );
46+
assertEquals("[ABC].*", mp.getSource());
47+
}
48+
3349
/**
3450
* <p>testMatchPath.</p>
3551
*
@@ -63,4 +79,20 @@ public void testMatchPatternStart()
6379
assertFalse( mp.matchPatternStart( "XXXX", false ) );
6480
}
6581

82+
/**
83+
* <p>testTokenizePathToString.</p>
84+
*/
85+
@Test
86+
public void testTokenizePathToString()
87+
{
88+
String[] expected = {"hello", "world"};
89+
String[] actual = MatchPattern.tokenizePathToString("hello/world", "/");
90+
assertArrayEquals(expected, actual);
91+
92+
actual = MatchPattern.tokenizePathToString("/hello/world", "/");
93+
assertArrayEquals(expected, actual);
94+
95+
actual = MatchPattern.tokenizePathToString("/hello/world/", "/");
96+
assertArrayEquals(expected, actual);
97+
}
6698
}

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

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

19+
import static org.junit.Assert.assertEquals;
1920
import static org.junit.Assert.assertFalse;
2021
import static org.junit.Assert.assertTrue;
2122

2223
import org.junit.Test;
2324

25+
import java.util.Arrays;
26+
import java.util.List;
27+
2428
/**
2529
* <p>MatchPatternsTest class.</p>
2630
*
@@ -30,6 +34,18 @@
3034
*/
3135
public class MatchPatternsTest
3236
{
37+
/**
38+
* <p>testGetSource</p>
39+
*/
40+
@Test
41+
public void testGetSources()
42+
{
43+
List<String> expected = Arrays.asList("ABC**", "some/ABC*", "[ABC].*");
44+
MatchPatterns from = MatchPatterns.from( "ABC**", "%ant[some/ABC*]", "%regex[[ABC].*]" );
45+
List<String> actual = from.getSources();
46+
assertEquals(expected, actual);
47+
}
48+
3349
/**
3450
* <p>testMatches.</p>
3551
*

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

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

19+
import static org.junit.Assert.assertEquals;
1920
import static org.junit.Assert.assertFalse;
2021
import static org.junit.Assert.assertTrue;
2122

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

0 commit comments

Comments
 (0)