1 2 package org.quilt.cl; 3 4 import java.io.*; 5 import java.lang.Class ; 6 import java.lang.reflect.*; 7 import java.net.*; 8 import junit.framework.*; 9 10 15 public class TestNestedTryBlocks extends TestCase { 16 17 private URL [] cp = null; 18 19 private String [] delegating = { 20 }; 22 private String [] include = { 24 "test.data.", 25 "AnonymousClass", "AnonymousClass2Catches", 26 "BasicLoad", 27 "ExceptionLoad", "ExceptionThrow", 28 "InnerClass", "NestedTryBlocks", 29 "PrivateClass", "SuperClass", 30 "Wimple" 31 }; 32 private String [] exclude = { 33 }; 35 private QuiltClassLoader qLoader = null; 36 37 private GraphXformer spy; 38 private GraphXformer talker; 39 public TestNestedTryBlocks (String name) { 40 super(name); 41 } 42 43 public void setUp () { 44 File sam1 = new File ("target/test-data-classes/"); 45 String fullPath1 = sam1.getAbsolutePath() + "/"; 46 File sam2 = new File ("target/classes"); 47 String fullPath2 = sam2.getAbsolutePath() + "/"; 48 File sam3 = new File ("target/test-classes"); 49 String fullPath3 = sam3.getAbsolutePath() + "/"; 50 try { 51 URL [] samples = { 54 new URL ( "file://" + fullPath1), 55 new URL ( "file://" + fullPath2), 56 new URL ( "file://" + fullPath3) 57 }; 58 cp = samples; 59 } catch (MalformedURLException e) { 60 e.printStackTrace(); 61 fail ("problem creating class path"); 62 } 63 qLoader = new QuiltClassLoader( 64 cp, 65 null, delegating, include, exclude); spy = new GraphSpy(); 70 qLoader.addGraphXformer(spy); 71 talker = new GraphTalker(); 72 qLoader.addGraphXformer(talker); 73 } 74 75 private RunTest loadAsRunTest (String name) { 76 Class clazz = null; 77 try { 78 clazz = qLoader.loadClass(name); 79 } catch (ClassNotFoundException e) { 80 e.printStackTrace(); 81 fail ("exception loading " + name + " using loadClass"); 82 } 83 RunTest rt = null; 84 try { 85 rt = (RunTest) clazz.newInstance(); 86 } catch ( InstantiationException e ) { 87 fail ("InstantiationException instantiating loaded class " + name); 88 } catch ( IllegalAccessException e ) { 89 fail ("IllegalAccessException instantiating loaded class " + name); 90 } catch (ClassCastException e) { 91 fail ("ClassCastException instantiating loaded class " + name); 92 } 93 return rt; 94 } 95 public void testNestedTries() { 96 RunTest rt = loadAsRunTest("NestedTryBlocks"); 97 assertEquals ("NestedTryBlocks isn't working", 22, rt.runTest(7)); 98 } 99 100 } 101 | Popular Tags |