KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > jegg > impl > TestBase


1 /*
2  * Copyright (c) 2004, Bruce Lowery
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions are met:
7  *
8  * - Redistributions of source code must retain the above copyright notice,
9  * this list of conditions and the following disclaimer.
10  * - Redistributions in binary form must reproduce the above copyright
11  * notice, this list of conditions and the following disclaimer in the
12  * documentation and/or other materials provided with the distribution.
13  * - Neither the name of JEGG nor the names of its contributors may be used
14  * to endorse or promote products derived from this software without
15  * specific prior written permission.
16  *
17  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
21  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27  * POSSIBILITY OF SUCH DAMAGE.
28  */

29 package jegg.impl;
30
31 import org.apache.commons.logging.Log;
32 import org.apache.commons.logging.LogFactory;
33
34 import junit.framework.TestCase;
35 import junit.framework.TestSuite;
36
37 /**
38  *
39  */

40 public abstract class TestBase extends TestCase
41 {
42     private static Class JavaDoc testClass;
43     private static Log testLog;
44     private long start;
45     private long end;
46     
47     protected static void setTestClass(Class JavaDoc c)
48     {
49         testClass = c;
50         testLog = LogFactory.getLog(testClass);
51     }
52     
53     protected static Log getLog()
54     {
55         return testLog;
56     }
57     
58     public TestBase(String JavaDoc n)
59     {
60         super(n);
61     }
62     
63     protected void prolog(String JavaDoc s)
64     {
65         StringBuffer JavaDoc buf = new StringBuffer JavaDoc();
66         buf.append("\n-------------------------------------------------\n");
67         buf.append(" Test: ");
68         buf.append(getName());
69         buf.append("\n\n");
70         buf.append(s);
71         buf.append("-------------------------------------------------\n");
72         getLog().info(buf.toString());
73     }
74     
75     public void setUp()
76     {
77         StringBuffer JavaDoc buf = new StringBuffer JavaDoc();
78         buf.append("\n-------------------------------------------------\n");
79         buf.append(" Setting up: ");
80         buf.append(getName());
81         buf.append("\n");
82         setup();
83         buf.append("-------------------------------------------------\n");
84         getLog().info(buf.toString());
85         start = System.currentTimeMillis();
86     }
87     
88     protected abstract void setup();
89     
90     public void tearDown()
91     {
92         end = System.currentTimeMillis();
93         StringBuffer JavaDoc buf = new StringBuffer JavaDoc();
94         buf.append("-------------------------------------------------\n");
95         buf.append(" Tearing down: ");
96         buf.append(getName());
97         buf.append("\n");
98         buf.append(" Execution time: ");
99         buf.append(Long.toString(end-start));
100         buf.append("msec\n");
101         buf.append("-------------------------------------------------\n");
102         getLog().info(buf.toString());
103         teardown();
104     }
105     
106     protected abstract void teardown();
107     
108     /**
109      * Test class main: Run all the tests defined by this class.
110      * @param args xxx
111      * @throws Exception xxx
112      */

113     public static void main(final String JavaDoc[] args) throws Exception JavaDoc
114     {
115         //run all tests
116
junit.textui.TestRunner.run(new TestSuite(EggTest.class));
117     }
118     
119 }
120
Popular Tags