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