1 19 20 package edu.umd.cs.findbugs; 21 22 import junit.framework.Assert; 23 import junit.framework.TestCase; 24 25 public class ClassScreenerTest extends TestCase { 26 private IClassScreener emptyScreener; 27 private ClassScreener particularClassScreener; 28 private ClassScreener particularPackageScreener; 29 private ClassScreener particularPackageScreener2; 30 31 private static String makeFileName(String className) { 32 return className.replace('.', '/') + ".class"; 33 } 34 35 private static String makeJarURL(String fileName) { 36 return "jar:http://foo.com/bar.jar!/" + fileName; 37 } 38 39 private static final String FOOBAR_PACKAGE = "com.foobar"; 40 private static final String FOOBAR_PACKAGE_WITH_TRAILING_DOT = "com.foobar."; 41 private static final String FURRYLEMUR_PACKAGE = "org.furrylemur"; 42 43 private static final String SOME_CLASS = FOOBAR_PACKAGE + ".SomeClass"; 44 private static final String SOME_OTHER_CLASS = FOOBAR_PACKAGE + ".SomeOtherClass"; 45 private static final String UNRELATED_THING_CLASS = FURRYLEMUR_PACKAGE + ".UnrelatedThing"; 46 47 private static final String SOME_CLASS_FILENAME = makeFileName(SOME_CLASS); 48 private static final String SOME_OTHER_CLASS_FILENAME = makeFileName(SOME_OTHER_CLASS); 49 private static final String UNRELATED_THING_CLASS_FILENAME = makeFileName(UNRELATED_THING_CLASS); 50 51 private static final String SOME_CLASS_JARFILENAME = makeJarURL(SOME_CLASS_FILENAME); 52 private static final String SOME_OTHER_CLASS_JARFILENAME = makeJarURL(SOME_OTHER_CLASS_FILENAME); 53 private static final String UNRELATED_THING_CLASS_JARFILENAME = makeJarURL(UNRELATED_THING_CLASS_FILENAME); 54 55 @Override 56 protected void setUp() { 57 emptyScreener = new ClassScreener(); 58 59 particularClassScreener = new ClassScreener(); 60 particularClassScreener.addAllowedClass(SOME_CLASS); 61 62 particularPackageScreener = new ClassScreener(); 63 particularPackageScreener.addAllowedPackage(FOOBAR_PACKAGE); 64 65 particularPackageScreener2 = new ClassScreener(); 66 particularPackageScreener2.addAllowedPackage(FOOBAR_PACKAGE_WITH_TRAILING_DOT); 67 } 68 69 public void testEmptyClassScreener() { 70 Assert.assertTrue(emptyScreener.matches(SOME_CLASS_FILENAME)); 71 Assert.assertTrue(emptyScreener.matches(SOME_OTHER_CLASS_FILENAME)); 72 Assert.assertTrue(emptyScreener.matches(UNRELATED_THING_CLASS_FILENAME)); 73 74 Assert.assertTrue(emptyScreener.matches(SOME_CLASS_JARFILENAME)); 75 Assert.assertTrue(emptyScreener.matches(SOME_OTHER_CLASS_JARFILENAME)); 76 Assert.assertTrue(emptyScreener.matches(UNRELATED_THING_CLASS_JARFILENAME)); 77 } 78 79 public void testParticularClassScreener() { 80 Assert.assertTrue(particularClassScreener.matches(SOME_CLASS_FILENAME)); 81 Assert.assertFalse(particularClassScreener.matches(SOME_OTHER_CLASS_FILENAME)); 82 Assert.assertFalse(particularClassScreener.matches(UNRELATED_THING_CLASS_FILENAME)); 83 84 Assert.assertTrue(particularClassScreener.matches(SOME_CLASS_JARFILENAME)); 85 Assert.assertFalse(particularClassScreener.matches(SOME_OTHER_CLASS_JARFILENAME)); 86 Assert.assertFalse(particularClassScreener.matches(UNRELATED_THING_CLASS_JARFILENAME)); 87 } 88 89 public void testParticularPackageScreener() { 90 testPackageScreener(particularPackageScreener); 91 testPackageScreener(particularPackageScreener2); 92 } 93 94 private void testPackageScreener(IClassScreener screener) { 95 Assert.assertTrue(screener.matches(SOME_CLASS_FILENAME)); 96 Assert.assertTrue(screener.matches(SOME_OTHER_CLASS_FILENAME)); 97 Assert.assertFalse(screener.matches(UNRELATED_THING_CLASS_FILENAME)); 98 Assert.assertTrue(screener.matches(SOME_CLASS_JARFILENAME)); 99 Assert.assertTrue(screener.matches(SOME_OTHER_CLASS_JARFILENAME)); 100 Assert.assertFalse(screener.matches(UNRELATED_THING_CLASS_JARFILENAME)); 101 } 102 } 103 104 | Popular Tags |