KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > jetspeed > services > psmlmanager > TestDbCriteria


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 package org.apache.jetspeed.services.psmlmanager;
18
19 // Junit imports
20
import junit.framework.Test;
21 import junit.framework.TestSuite;
22
23
24 import org.apache.turbine.util.TurbineConfig;
25 import org.apache.turbine.util.StringUtils;
26
27 // Jetspeed imports
28
import org.apache.jetspeed.test.JetspeedTestCase;
29 import org.apache.jetspeed.om.profile.ProfileLocator;
30 import org.apache.jetspeed.om.profile.BaseProfile;
31
32 import org.apache.torque.util.Criteria;
33
34 /**
35  * TestDbCriteria
36  *
37  * @author <a HREF="taylor@apache.org">David Sean Taylor</a>
38  * @version $Id: TestDbCriteria.java,v 1.1 2004/04/07 22:02:42 jford Exp $
39  */

40
41 public class TestDbCriteria extends JetspeedTestCase {
42
43
44     /** the column name for the PSML_ID field */
45     public static final String JavaDoc PSML_ID;
46     /** the column name for the USER_NAME field */
47     public static final String JavaDoc USER_NAME;
48     /** the column name for the MEDIA_TYPE field */
49     public static final String JavaDoc MEDIA_TYPE;
50     /** the column name for the LANGUAGE field */
51     public static final String JavaDoc LANGUAGE;
52     /** the column name for the COUNTRY field */
53     public static final String JavaDoc COUNTRY;
54     /** the column name for the PAGE field */
55     public static final String JavaDoc PAGE;
56     /** the column name for the PROFILE field */
57     public static final String JavaDoc PROFILE;
58
59     static
60     {
61     PSML_ID = "JETSPEED_USER_PROFILE.PSML_ID";
62     USER_NAME = "JETSPEED_USER_PROFILE.USER_NAME";
63     MEDIA_TYPE = "JETSPEED_USER_PROFILE.MEDIA_TYPE";
64     LANGUAGE = "JETSPEED_USER_PROFILE.LANGUAGE";
65     COUNTRY = "JETSPEED_USER_PROFILE.COUNTRY";
66     PAGE = "JETSPEED_USER_PROFILE.PAGE";
67     PROFILE = "JETSPEED_USER_PROFILE.PROFILE";
68     }
69
70     /**
71      * Defines the testcase name for JUnit.
72      *
73      * @param name the testcase's name.
74      */

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

84     public static void main(String JavaDoc args[]) {
85         junit.awtui.TestRunner.main( new String JavaDoc[] { TestDbCriteria.class.getName() } );
86     }
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( TestDbCriteria.class );
97     }
98
99
100     /**
101      * Tests generating an SQL string from a profile locator
102      * @throws Exception
103      */

104
105     public void testLocatorCriteria() throws Exception JavaDoc
106     {
107
108         ProfileLocator locator = new BaseProfile();
109         locator.setMediaType("html");
110         locator.setLanguage("en");
111         locator.setName("default.psml");
112             
113         Criteria criteria = new Criteria();
114
115         String JavaDoc mediaType = locator.getMediaType();
116         String JavaDoc language = locator.getLanguage();
117         String JavaDoc country = locator.getCountry();
118         String JavaDoc pageName = locator.getName();
119         String JavaDoc userName = "anon";
120
121         assertTrue(country == null);
122
123         if (userName != null && userName.length() > 0)
124         {
125             criteria.add(USER_NAME, userName) ;
126         }
127
128         if (pageName != null && pageName.length() > 0)
129         {
130             criteria.add(PAGE, pageName);
131         }
132
133         if (mediaType != null && mediaType.length() > 0)
134         {
135             criteria.add(MEDIA_TYPE, mediaType);
136         }
137
138         if (language != null && language.length() > 0)
139         {
140              criteria.add(LANGUAGE, language);
141         }
142
143         criteria.add(COUNTRY, country);
144
145         String JavaDoc sql = criteria.toString();
146         System.out.println("criteria = [" + criteria.toString() + "]");
147         assertTrue(sql.indexOf("JETSPEED_USER_PROFILE.COUNTRY IS NULL") > -1);
148     }
149
150 /*
151     Configuration object to run Turbine outside a servlet container
152     ( uses turbine.properties )
153     */

154     private static TurbineConfig config = null;
155     
156     /**
157     Sets up TurbineConfig using the system property:
158     <pre>turbine.properties</pre>
159     */

160     static
161     {
162         try
163         {
164             config = new TurbineConfig( "webapp", "/WEB-INF/conf/TurbineResources.properties");
165             config.init();
166         }
167         catch (Exception JavaDoc e)
168         {
169             fail(StringUtils.stackTrace(e));
170         }
171     }
172
173 }
174
Popular Tags