1 /* TestSamples.java */ 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 /*** 11 * Checks to make sure that the samples in test-data will load 12 * and execute correctly. Some of them wouldn't ;-) 13 * 14 * @author <a href="jddixon@users.sourceforge.net">Jim Dixon</a> 15 */ 16 public class TestSamples extends TestCase { 17 18 public TestSamples (String name) { 19 super(name); 20 } 21 22 public void setUp () { 23 } 24 25 private RunTest loadAsRunTest (String name) { 26 Class clazz = null; 27 try { 28 clazz = Class.forName (name); 29 } catch (ClassNotFoundException e) { 30 e.printStackTrace(); 31 fail ("exception loading " + name + " using loadClass"); 32 } 33 RunTest rt = null; 34 try { 35 rt = (RunTest) clazz.newInstance(); 36 } catch ( InstantiationException e ) { 37 fail ("InstantiationException instantiating loaded class " + name); 38 } catch ( IllegalAccessException e ) { 39 fail ("IllegalAccessException instantiating loaded class " + name); 40 } catch (ClassCastException e) { 41 fail ("ClassCastException instantiating loaded class " + name); 42 } 43 return rt; 44 } 45 public void testInvokeTestData() { 46 RunTest rt = loadAsRunTest("AnonymousClass"); 47 // AnonymousClass.runTest(x) returns x 48 assertEquals ("AnonymousClass isn't working", 47, rt.runTest(47)); 49 50 rt = loadAsRunTest("BasicLoad"); 51 // BasicLoad.runTest(x) returns x*x 52 assertEquals ("BasicLoad isn't working", 49, rt.runTest(7)); 53 54 rt = loadAsRunTest("ComplicatedConstructor"); 55 assertEquals("ComplicatedConstructor isn't working", 56 61, rt.runTest(3)); 57 // XXX causes ClassCastException when instantiating 58 rt = loadAsRunTest("ExceptionLoad"); 59 // ExceptionLoad.runTest(x) also returns x*x 60 assertEquals ("ExceptionLoad isn't working", 121, rt.runTest(11)); 61 } 62 public void testInvokeTestData2() { 63 RunTest rt = loadAsRunTest("Finally"); 64 // Finally.runTest(x) returns -1 65 assertEquals ("Finally isn't working", -1, rt.runTest(11)); 66 assertEquals ("Finally isn't working", -1, rt.runTest(1)); 67 68 rt = loadAsRunTest("Finally2Catches"); 69 // what Finally.runTest(x) returns is a bit complicated ... 70 assertEquals ("Finally2Catches isn't working", 3600, rt.runTest(11)); 71 72 rt = loadAsRunTest("InnerClass"); 73 // InnerClass.runTest(x) also returns x*x 74 assertEquals ("InnerClass isn't working", 9, rt.runTest(3)); 75 76 rt = loadAsRunTest("Looper"); 77 assertEquals("Looper isn't working", 127008000, rt.runTest(5)); 78 79 rt = loadAsRunTest("NestedTryBlocks"); 80 assertEquals ("NestedTryBlocks isn't working", 22, rt.runTest(7)); 81 82 rt = loadAsRunTest("OddSwitches"); 83 // we like to play 84 assertEquals( 91, rt.runTest(1001)); 85 assertEquals( 31, rt.runTest(3)); 86 assertEquals( 9, rt.runTest(9)); 87 assertEquals(101, rt.runTest(1005)); 88 assertEquals(-41, rt.runTest(-1)); 89 assertEquals( -3, rt.runTest(-51)); 90 assertEquals( 7, rt.runTest(-2)); 91 } 92 93 public void testInvokeTestData3() { 94 RunTest rt; 95 try { 96 Class clazz = Class.forName("PrivateClass"); 97 rt = (RunTest) clazz.newInstance(); 98 fail ("Expected IllegalAccessException"); 99 } catch ( Exception e) { 100 ; // ignore it 101 } 102 103 rt = loadAsRunTest("StaticInit"); 104 assertEquals("StaticInit isn't working", 10, rt.runTest(7)); 105 106 rt = loadAsRunTest("SuperClass"); 107 // returns 3*x 108 assertEquals ("SuperClass isn't working", 21, rt.runTest(7)); 109 110 rt = loadAsRunTest("SwitchLoad"); 111 assertEquals ("SwitchLoad isn't working", 42, rt.runTest(7)); 112 113 } 114 }

This page was automatically generated by Maven