KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > jetspeed > services > idgenerator > TestIdGenerator


1 /*
2  * Copyright 2000-2001,2004 The Apache Software Foundation.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */

16
17
18 package org.apache.jetspeed.services.idgenerator;
19
20 // Java imports
21
import java.util.HashMap JavaDoc;
22
23 // Cactus and Junit imports
24
import junit.framework.Test;
25 import junit.framework.TestSuite;
26
27 // Jetspeed imports
28
import org.apache.jetspeed.test.JetspeedTestCase;
29 import org.apache.jetspeed.services.idgenerator.JetspeedIdGenerator;
30
31 import org.apache.turbine.util.TurbineConfig;
32 import org.apache.turbine.util.StringUtils;
33
34 /**
35  * TestIdGenerator
36  *
37  * @author <a HREF="paulsp@apache.org">Paul Spencer</a>
38  * @version $Id: TestIdGenerator.java,v 1.1 2004/04/07 22:02:42 jford Exp $
39  */

40 public class TestIdGenerator extends JetspeedTestCase {
41     
42     private static int ID_TEST_TRIES = 10000;
43
44     /**
45      * Configuration object to run Turbine outside a servlet container
46      * ( uses turbine.properties )
47      */

48     private static TurbineConfig config = null;
49     
50     /**
51      * Sets up TurbineConfig using the system property:
52      * <pre>turbine.properties</pre>
53      */

54     static
55     {
56         try
57         {
58             config = new TurbineConfig( "webapp",
59             "/WEB-INF/conf/TurbineResources.properties");
60             config.init();
61         }
62         catch (Exception JavaDoc e)
63         {
64             fail(StringUtils.stackTrace(e));
65         }
66     }
67     
68     /**
69      * Defines the testcase name for JUnit.
70      *
71      * @param name the testcase's name.
72      */

73     public TestIdGenerator(String JavaDoc name) {
74         super( name );
75     }
76     
77     /**
78      * Start the tests.
79      *
80      * @param args the arguments. Not used
81      */

82     public static void main(String JavaDoc args[]) {
83         junit.awtui.TestRunner.main( new String JavaDoc[] { TestIdGenerator.class.getName() } );
84     }
85  
86     public void setup() {
87     }
88     /**
89      * Creates the test suite.
90      *
91      * @return a test suite (<code>TestSuite</code>) that includes all methods
92      * starting with "test"
93      */

94     public static Test suite() {
95         // All methods starting with "test" will be executed in the test suite.
96
return new TestSuite( TestIdGenerator.class );
97     }
98     
99     /**
100      * Simple test that verify the PEID are unique. This test will generate
101      * <CODE>ID_TEST_TRIES<CODE> PEIDs. It will test for a NULL PEID.
102      *
103      * Granted, passing this test does <B>not</B> guarantee that a duplicate
104      * PEID will not be generated.
105      *
106      * @throws Exception
107      */

108     public void testVerifyUniquePeid() throws Exception JavaDoc
109     {
110         HashMap JavaDoc generatedIds = new HashMap JavaDoc( ID_TEST_TRIES + 1);
111         String JavaDoc newId;
112         
113         // Add a NULL to verify a NULL is not being generated.
114
generatedIds.put(null, null);
115         
116         for (int counter = 1; counter <= ID_TEST_TRIES; counter++)
117         {
118             newId = JetspeedIdGenerator.getNextPeid();
119             assertTrue( "PEID already generated. PEID = " + newId, !generatedIds.containsKey(newId));
120             generatedIds.put(newId, null);
121         }
122     }
123
124     /**
125      * Simple test that verify the PEIDs are increasing. Although this is not a
126      * requirement of the IdGenerator, it is recommended
127      *
128      * @throws Exception
129      */

130     public void testVerifyIncreasingPeid() throws Exception JavaDoc
131     {
132         String JavaDoc newId;
133         String JavaDoc lastId = null;
134         
135         for (int counter = 1; counter <= ID_TEST_TRIES; counter++)
136         {
137             newId = JetspeedIdGenerator.getNextPeid();
138             if (lastId == null)
139             {
140                 lastId = newId;
141                 continue;
142             }
143             assertTrue( "PEID is not greater then last generated PEID. PEID = " + newId, (lastId.compareTo(newId)<0));
144             lastId = newId;
145         }
146     }
147 }
148
Popular Tags