1 package net.sf.clirr.core.internal.checks; 2 3 import junit.framework.TestCase; 4 import net.sf.clirr.core.Checker; 5 import net.sf.clirr.core.ClassSelector; 6 import net.sf.clirr.core.ApiDifference; 7 import net.sf.clirr.core.CheckerFactory; 8 import net.sf.clirr.core.ClassFilter; 9 import net.sf.clirr.core.internal.ClassChangeCheck; 10 import net.sf.clirr.core.internal.bcel.BcelTypeArrayBuilder; 11 import net.sf.clirr.core.spi.JavaType; 12 13 import org.apache.bcel.util.ClassSet; 14 15 import java.io.File ; 16 import java.net.URL ; 17 import java.net.URLClassLoader ; 18 19 23 public abstract class AbstractCheckTestCase extends TestCase 24 { 25 protected final File getTestInputDir() 26 { 27 return new File (System.getProperty("testinput")); 29 } 30 31 protected void verify( 32 Checker checker, 33 ClassSet baseline, ClassSet current, 34 ApiDifference[] expected) 35 { 36 } 37 38 protected File [] getBaseLine() 39 { 40 return new File []{ 41 new File (getTestInputDir(), "testlib-v1.jar") 42 }; 43 } 44 45 protected File [] getCurrent() 46 { 47 return new File []{ 48 new File (getTestInputDir(), "testlib-v2.jar") 49 }; 50 } 51 52 protected void verify(ExpectedDiff[] expected) 53 throws Exception 54 { 55 TestDiffListener tdl = new TestDiffListener(); 56 Checker checker = CheckerFactory.createChecker(createCheck(tdl)); 57 ClassFilter classSelector = createClassSelector(); 58 59 final JavaType[] origClasses = 60 BcelTypeArrayBuilder.createClassSet(getBaseLine(), new URLClassLoader (new URL []{}), classSelector); 61 62 final JavaType[] newClasses = 63 BcelTypeArrayBuilder.createClassSet(getCurrent(), new URLClassLoader (new URL []{}), classSelector); 64 65 checker.reportDiffs(origClasses, newClasses); 66 67 tdl.checkExpected(expected); 68 } 69 70 79 protected ClassFilter createClassSelector() 80 { 81 ClassSelector classSelector = new ClassSelector(ClassSelector.MODE_IF); 83 classSelector.addPackage("testlib"); 84 return classSelector; 85 } 86 87 93 protected abstract ClassChangeCheck createCheck(TestDiffListener tdl); 94 } 95 | Popular Tags |