KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > enhydra > barracuda > core > view > TestScriptingType


1 /*
2  * Copyright (C) 2003 Christian Cryder [christianc@granitepeaks.com]
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17  *
18  * $Id: TestScriptingType.java,v 1.8 2004/02/01 05:16:33 christianc Exp $
19  */

20 package org.enhydra.barracuda.core.view;
21
22 import java.io.*;
23 import java.util.*;
24 import java.security.*;
25 import javax.servlet.*;
26 import javax.servlet.http.*;
27
28 import org.w3c.dom.*;
29 import junit.framework.*;
30
31 import org.enhydra.barracuda.plankton.*;
32 import org.enhydra.barracuda.plankton.data.*;
33 import org.enhydra.barracuda.core.util.dom.*;
34 import org.apache.log4j.*;
35 import org.enhydra.barracuda.core.view.*;
36 import org.enhydra.barracuda.examples.xmlc.*;
37 import org.enhydra.barracuda.testbed.*;
38 import org.enhydra.barracuda.testbed.servlet.*;
39
40
41 /**
42  * This test verifies that the hierachical organization of
43  * ScriptingType classes. We do this by testing for what it should be
44  * an instanceof and what it shouldn't. The idea is that the ScriptingType
45  * extension hierarchy is very important and we don't want it getting
46  * changed accidentally. This test should preclude that.
47  */

48 public class TestScriptingType extends DefaultTestCase {
49     //common vars (customize for every test class)
50
private static String JavaDoc testClass = TestScriptingType.class.getName();
51     private static Logger logger = Logger.getLogger("test."+testClass);
52
53     //variables
54
ScriptingType st = null;
55     Class JavaDoc targetCl = null;
56     
57     //-------------------- Basics --------------------------------
58
/**
59      * Public Constructor
60      */

61     public TestScriptingType(String JavaDoc name) {
62         super(name);
63     }
64
65     public TestScriptingType(String JavaDoc name, ScriptingType ist, Class JavaDoc itargetCl) {
66         super(name);
67         st = ist;
68         targetCl = itargetCl;
69     }
70     
71     /**
72      * Every test class should have a main method so it can be run
73      * directly (when debugging tests you often will not want to run
74      * the whole suite)
75      *
76      * @param args defined in test.util.TestUtil
77      */

78     public static void main(String JavaDoc args[]) {
79         //check for standard runtime parameters
80
TestUtil.parseParams(args);
81
82         //launch the test
83
if (TestUtil.BATCH_MODE) junit.textui.TestRunner.main(new String JavaDoc[] {testClass});
84         else junit.swingui.TestRunner.main(new String JavaDoc[] {testClass});
85     }
86
87     /**
88      * Return a suite of tests...
89      */

90     public static Test suite() {
91         //create the test suite
92
TestSuite suite = new TestSuite();
93         
94         //add the tests
95
//...JAVASCRIPT_1x
96
suite.addTest(new TestScriptingType("testInstance", ScriptingType.JAVASCRIPT_1x, ScriptingType.JavaScript1x.class));
97         suite.addTest(new TestScriptingType("testInstance", ScriptingType.JAVASCRIPT_1x, ScriptingType.JavaScript.class));
98         suite.addTest(new TestScriptingType("testNotInstance", ScriptingType.JAVASCRIPT_1x, ScriptingType.WmlScript.class));
99         suite.addTest(new TestScriptingType("testNotInstance", ScriptingType.JAVASCRIPT_1x, ScriptingType.None.class));
100         //...JAVASCRIPT_1_0
101
suite.addTest(new TestScriptingType("testInstance", ScriptingType.JAVASCRIPT_1_0, ScriptingType.JavaScript10.class));
102         suite.addTest(new TestScriptingType("testInstance", ScriptingType.JAVASCRIPT_1_0, ScriptingType.JavaScript1x.class));
103         suite.addTest(new TestScriptingType("testInstance", ScriptingType.JAVASCRIPT_1_0, ScriptingType.JavaScript.class));
104         suite.addTest(new TestScriptingType("testNotInstance", ScriptingType.JAVASCRIPT_1_0, ScriptingType.WmlScript.class));
105         suite.addTest(new TestScriptingType("testNotInstance", ScriptingType.JAVASCRIPT_1_0, ScriptingType.None.class));
106         //...JAVASCRIPT_1_1
107
suite.addTest(new TestScriptingType("testInstance", ScriptingType.JAVASCRIPT_1_1, ScriptingType.JavaScript11.class));
108         suite.addTest(new TestScriptingType("testInstance", ScriptingType.JAVASCRIPT_1_1, ScriptingType.JavaScript10.class));
109         suite.addTest(new TestScriptingType("testInstance", ScriptingType.JAVASCRIPT_1_1, ScriptingType.JavaScript1x.class));
110         suite.addTest(new TestScriptingType("testInstance", ScriptingType.JAVASCRIPT_1_1, ScriptingType.JavaScript.class));
111         suite.addTest(new TestScriptingType("testNotInstance", ScriptingType.JAVASCRIPT_1_1, ScriptingType.WmlScript.class));
112         suite.addTest(new TestScriptingType("testNotInstance", ScriptingType.JAVASCRIPT_1_1, ScriptingType.None.class));
113         //...JAVASCRIPT_1_2
114
suite.addTest(new TestScriptingType("testInstance", ScriptingType.JAVASCRIPT_1_2, ScriptingType.JavaScript12.class));
115         suite.addTest(new TestScriptingType("testInstance", ScriptingType.JAVASCRIPT_1_2, ScriptingType.JavaScript11.class));
116         suite.addTest(new TestScriptingType("testInstance", ScriptingType.JAVASCRIPT_1_2, ScriptingType.JavaScript10.class));
117         suite.addTest(new TestScriptingType("testInstance", ScriptingType.JAVASCRIPT_1_2, ScriptingType.JavaScript1x.class));
118         suite.addTest(new TestScriptingType("testInstance", ScriptingType.JAVASCRIPT_1_2, ScriptingType.JavaScript.class));
119         suite.addTest(new TestScriptingType("testNotInstance", ScriptingType.JAVASCRIPT_1_2, ScriptingType.WmlScript.class));
120         suite.addTest(new TestScriptingType("testNotInstance", ScriptingType.JAVASCRIPT_1_2, ScriptingType.None.class));
121         //...JAVASCRIPT_1_3
122
suite.addTest(new TestScriptingType("testInstance", ScriptingType.JAVASCRIPT_1_3, ScriptingType.JavaScript13.class));
123         suite.addTest(new TestScriptingType("testInstance", ScriptingType.JAVASCRIPT_1_3, ScriptingType.JavaScript12.class));
124         suite.addTest(new TestScriptingType("testInstance", ScriptingType.JAVASCRIPT_1_3, ScriptingType.JavaScript11.class));
125         suite.addTest(new TestScriptingType("testInstance", ScriptingType.JAVASCRIPT_1_3, ScriptingType.JavaScript10.class));
126         suite.addTest(new TestScriptingType("testInstance", ScriptingType.JAVASCRIPT_1_3, ScriptingType.JavaScript1x.class));
127         suite.addTest(new TestScriptingType("testInstance", ScriptingType.JAVASCRIPT_1_3, ScriptingType.JavaScript.class));
128         suite.addTest(new TestScriptingType("testNotInstance", ScriptingType.JAVASCRIPT_1_3, ScriptingType.WmlScript.class));
129         suite.addTest(new TestScriptingType("testNotInstance", ScriptingType.JAVASCRIPT_1_3, ScriptingType.None.class));
130         //...WMLSCRIPT_1x
131
suite.addTest(new TestScriptingType("testInstance", ScriptingType.WMLSCRIPT_1x, ScriptingType.WmlScript1x.class));
132         suite.addTest(new TestScriptingType("testInstance", ScriptingType.WMLSCRIPT_1x, ScriptingType.WmlScript.class));
133         suite.addTest(new TestScriptingType("testNotInstance", ScriptingType.WMLSCRIPT_1x, ScriptingType.JavaScript.class));
134         suite.addTest(new TestScriptingType("testNotInstance", ScriptingType.WMLSCRIPT_1x, ScriptingType.None.class));
135         //...WMLSCRIPT_1_0
136
suite.addTest(new TestScriptingType("testInstance", ScriptingType.WMLSCRIPT_1_0, ScriptingType.WmlScript10.class));
137         suite.addTest(new TestScriptingType("testInstance", ScriptingType.WMLSCRIPT_1_0, ScriptingType.WmlScript1x.class));
138         suite.addTest(new TestScriptingType("testInstance", ScriptingType.WMLSCRIPT_1_0, ScriptingType.WmlScript.class));
139         suite.addTest(new TestScriptingType("testNotInstance", ScriptingType.WMLSCRIPT_1_0, ScriptingType.JavaScript.class));
140         suite.addTest(new TestScriptingType("testNotInstance", ScriptingType.WMLSCRIPT_1_0, ScriptingType.None.class));
141         //...WMLSCRIPT_1_1
142
suite.addTest(new TestScriptingType("testInstance", ScriptingType.WMLSCRIPT_1_1, ScriptingType.WmlScript11.class));
143         suite.addTest(new TestScriptingType("testInstance", ScriptingType.WMLSCRIPT_1_1, ScriptingType.WmlScript10.class));
144         suite.addTest(new TestScriptingType("testInstance", ScriptingType.WMLSCRIPT_1_1, ScriptingType.WmlScript1x.class));
145         suite.addTest(new TestScriptingType("testInstance", ScriptingType.WMLSCRIPT_1_1, ScriptingType.WmlScript.class));
146         suite.addTest(new TestScriptingType("testNotInstance", ScriptingType.WMLSCRIPT_1_1, ScriptingType.JavaScript.class));
147         suite.addTest(new TestScriptingType("testNotInstance", ScriptingType.WMLSCRIPT_1_1, ScriptingType.None.class));
148         //...WMLSCRIPT_1_2
149
suite.addTest(new TestScriptingType("testInstance", ScriptingType.WMLSCRIPT_1_2, ScriptingType.WmlScript12.class));
150         suite.addTest(new TestScriptingType("testInstance", ScriptingType.WMLSCRIPT_1_2, ScriptingType.WmlScript11.class));
151         suite.addTest(new TestScriptingType("testInstance", ScriptingType.WMLSCRIPT_1_2, ScriptingType.WmlScript10.class));
152         suite.addTest(new TestScriptingType("testInstance", ScriptingType.WMLSCRIPT_1_2, ScriptingType.WmlScript1x.class));
153         suite.addTest(new TestScriptingType("testInstance", ScriptingType.WMLSCRIPT_1_2, ScriptingType.WmlScript.class));
154         suite.addTest(new TestScriptingType("testNotInstance", ScriptingType.WMLSCRIPT_1_2, ScriptingType.JavaScript.class));
155         suite.addTest(new TestScriptingType("testNotInstance", ScriptingType.WMLSCRIPT_1_2, ScriptingType.None.class));
156         //...NONE
157
suite.addTest(new TestScriptingType("testInstance", ScriptingType.NONE, ScriptingType.None.class));
158         suite.addTest(new TestScriptingType("testNotInstance", ScriptingType.NONE, ScriptingType.JavaScript.class));
159         suite.addTest(new TestScriptingType("testNotInstance", ScriptingType.NONE, ScriptingType.WmlScript.class));
160
161         //finally return the suite
162
return suite;
163     }
164
165
166     //-------------------- Actual Tests --------------------------
167
//Note: all the methods herein should follow the testXXXX naming convention
168
//Also keep in mind that local vars set in one test method are NOT retained
169
//when the next method is invoked because JUnit makes a separate instance of
170
//the test class for each testXXXX method!!!
171

172     /**
173      * Make sure that the class being tested IS an instance of the
174      * target class
175      */

176     public void testInstance() {
177         if (logger.isInfoEnabled()) logger.info("testing instanceof");
178         assertTrue(st+" not an instanceof "+targetCl, targetCl.isAssignableFrom(st.getClass()));
179     }
180
181     /**
182      * Make sure that the class being tested is NOT an instance of the
183      * target class
184      */

185     public void testNotInstance() {
186         if (logger.isInfoEnabled()) logger.info("testing !instanceof");
187         assertTrue(st+" is an instanceof "+targetCl+" (and it shouldn't be!)", !targetCl.isAssignableFrom(st.getClass()));
188     }
189 }
190
Popular Tags