001 package org.hackystat.sensorbase.uripattern; 002 003 004 import static org.junit.Assert.assertFalse; 005 import static org.junit.Assert.assertTrue; 006 007 import org.junit.Test; 008 009 /** 010 * Test suite for <code>PatternMatcher</code>. 011 * 012 * @author Qin Zhang 013 * @version $Id: TestPatternMatcher.java,v 1.1.1.1 2005/10/20 23:56:40 johnson Exp $ 014 */ 015 public class TestPatternMatcher { 016 017 private String testStarJava = "**/*.java"; 018 private String testBJava = "a/TestB.java"; 019 private String src = "src/"; 020 private String starStarTestClass = "org.**.Test*Class"; 021 private String testClass = "org.src.hackystat.TestClass"; 022 private String testAClass = "org.src.hackystat.TestAClass"; 023 private String testABClass = "org.src.hackystat.TestABClass"; 024 private String testQuestionClass = "org.**.Test?Class"; 025 //private String testClass2 = starStarTestClass; 026 //private String testClass3 = testQuestionClass; 027 private String testStarJava2 = "**/Test*.java"; 028 029 030 /** 031 * Tests <code>matchesFilePath()</code>. 032 */ 033 @Test 034 public void testMatchesFilePath() { 035 //file names 036 assertTrue("01", PatternMatcher.matchesFilePath(testStarJava, "c:/src/a/B.java", true)); 037 assertTrue("02", PatternMatcher.matchesFilePath(testStarJava, "B.java", true)); 038 assertTrue("03", PatternMatcher.matchesFilePath("**/a/**/*.java", "c:/src/a/B.java", true)); 039 assertTrue("04", 040 PatternMatcher.matchesFilePath("**/a/**/*.java", "c:/src/a/c/B.java", true)); 041 assertTrue("05", PatternMatcher.matchesFilePath("a/**/*.java", "a/d/e/B.java", true)); 042 assertTrue("06", PatternMatcher.matchesFilePath("a/**/*.java", "a/B.java", true)); 043 assertTrue("07", 044 PatternMatcher.matchesFilePath(testStarJava2, "c:/src/a/TestB.java", true)); 045 assertTrue("08", PatternMatcher.matchesFilePath(testStarJava2, testBJava, true)); 046 assertTrue("09", PatternMatcher.matchesFilePath(testStarJava2, "TestB.java", true)); 047 048 assertTrue("10", PatternMatcher.matchesFilePath(src, src, true)); 049 assertFalse("11", PatternMatcher.matchesFilePath(src, "src/a", true)); 050 assertFalse("13", PatternMatcher.matchesFilePath(src, "src/a/a", true)); 051 052 assertFalse("14", PatternMatcher.matchesFilePath("src/**/org/", "sRc/a/b/org", true)); 053 assertFalse("15", PatternMatcher.matchesFilePath("src/**/org/", "sRc/a/b/org/A.java", false)); 054 055 assertFalse("16", PatternMatcher.matchesFilePath(testStarJava2, "c:/Test/B.java", true)); 056 057 assertTrue("18", PatternMatcher.matchesFilePath(null, testBJava, false)); 058 assertTrue("19", PatternMatcher.matchesFilePath("**", testBJava, true)); 059 assertTrue("20", PatternMatcher.matchesFilePath("**", testBJava, false)); 060 } 061 062 /** 063 * Tests <code>matches()</code>. 064 */ 065 @Test 066 public void testMatches() { 067 assertTrue("21", PatternMatcher.matchesFilePath("org.**.Test*", "org.hackystat.TestA", true)); 068 assertFalse("22", PatternMatcher.matchesFilePath("oRg.**.Test*", "org.hackystat.TestA", true)); 069 assertTrue("23", PatternMatcher.matchesFilePath("oRg.**.Test*", "org.hackystat.TestA", false)); 070 071 assertTrue("24", 072 PatternMatcher.matchesFilePath(starStarTestClass, testClass, true)); 073 assertTrue("25", 074 PatternMatcher.matchesFilePath(starStarTestClass, testAClass, true)); 075 assertTrue("26", 076 PatternMatcher.matchesFilePath(starStarTestClass, testABClass, true)); 077 assertTrue("27", 078 PatternMatcher.matchesFilePath(starStarTestClass, "org.src.hackystat.TestABCClass", true)); 079 assertTrue("28", 080 PatternMatcher.matchesFilePath(testQuestionClass, testAClass, true)); 081 082 assertFalse("29", 083 PatternMatcher.matchesFilePath(testQuestionClass, testClass, true)); 084 assertFalse("30", 085 PatternMatcher.matchesFilePath(testQuestionClass, testABClass, true)); 086 087 assertTrue("32", 088 PatternMatcher.matchesFilePath(starStarTestClass, testClass, false)); 089 assertTrue("33", 090 PatternMatcher.matchesFilePath(starStarTestClass, testAClass, false)); 091 assertTrue("34", 092 PatternMatcher.matchesFilePath(starStarTestClass, testABClass, false)); 093 assertTrue("35", 094 PatternMatcher.matchesFilePath(starStarTestClass, "org.src.hackystat.TestABCClass", false)); 095 assertTrue("36", 096 PatternMatcher.matchesFilePath(testQuestionClass, testAClass, false)); 097 098 assertFalse("37", 099 PatternMatcher.matchesFilePath(testQuestionClass, testClass, false)); 100 assertFalse("38", 101 PatternMatcher.matchesFilePath(testQuestionClass, testABClass, false)); 102 assertTrue("39", 103 PatternMatcher.matchesFilePath(testQuestionClass, testAClass, false)); 104 105 assertTrue("40", PatternMatcher.matchesFilePath("**.a.b.c**", "AAA.a.b.cBBB", true)); 106 assertTrue("41", PatternMatcher.matchesFilePath("**.a.b.c**", ".a.b.c", true)); 107 assertTrue("42", PatternMatcher.matchesFilePath("?.???.?", "a.?*b.c", true)); 108 109 assertTrue("43", PatternMatcher.matchesFilePath(null, "a.?*b.c", true)); 110 assertTrue("44", PatternMatcher.matchesFilePath(null, "a.?*b.c", false)); 111 } 112 }