KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > methodhead > transfer > SiteExtensionTest


1 /*
2  * Copyright (C) 2006 Methodhead Software LLC. All rights reserved.
3  *
4  * This file is part of TransferCM.
5  *
6  * TransferCM is free software; you can redistribute it and/or modify it under the
7  * terms of the GNU General Public License as published by the Free Software
8  * Foundation; either version 2 of the License, or (at your option) any later
9  * version.
10  *
11  * TransferCM is distributed in the hope that it will be useful, but WITHOUT ANY
12  * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
13  * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
14  * details.
15  *
16  * You should have received a copy of the GNU General Public License along with
17  * TransferCM; if not, write to the Free Software Foundation, Inc., 51 Franklin St,
18  * Fifth Floor, Boston, MA 02110-1301 USA
19  */

20
21 package com.methodhead.transfer;
22
23 import java.util.*;
24 import java.sql.*;
25 import java.io.*;
26 import junit.framework.*;
27 import org.apache.log4j.*;
28 import com.methodhead.persistable.*;
29 import com.methodhead.property.*;
30 import com.methodhead.test.*;
31 import com.methodhead.sitecontext.*;
32 import com.methodhead.*;
33
34 public class SiteExtensionTest extends TestCase {
35
36   SiteExtension siteExtension = null;
37   Extension[] siteExtensions = null;
38   List list = null;
39
40   static {
41     TestUtils.initLogger();
42     TestUtils.initDb();
43   }
44
45   public SiteExtensionTest( String JavaDoc name ) {
46     super( name );
47   }
48
49   protected void setUp() {
50     try {
51       ConnectionSingleton.runBatchUpdate( new FileReader( "webapp/WEB-INF/db/transfer-reset.sql" ) );
52     }
53     catch ( Exception JavaDoc e ) {
54       fail( e.getMessage() );
55     }
56   }
57
58   protected void tearDown() {
59   }
60
61   public void testGetInstalledExtensions() {
62
63     //
64
// don't define extensions property
65
//
66
siteExtension = new SiteExtension();
67     siteExtensions = siteExtension.getInstalledExtensions();
68
69     assertNotNull( siteExtensions );
70     assertEquals( 0, siteExtensions.length );
71
72     //
73
// define extensions
74
//
75
Property.setProperty( SiteContext.getDefaultContext(), SiteExtension.PROPERTY_EXTENSIONS, "com.methodhead.transfer.MockExtension, com.methodhead.transfer.MockExtension,\ncom.methodhead.transfer.MockExtension" );
76
77     siteExtensions = siteExtension.getInstalledExtensions();
78
79     assertNotNull( siteExtensions );
80     assertEquals( 3, siteExtensions.length );
81
82     assertEquals( "MockExtension", siteExtensions[ 0 ].getName() );
83     assertEquals( "MockExtension", siteExtensions[ 1 ].getName() );
84     assertEquals( "MockExtension", siteExtensions[ 2 ].getName() );
85   }
86
87   public void testLoadAllForSiteContext() {
88     TestData.createSiteExtensions();
89
90     //
91
// load for site context 1
92
//
93
siteExtension = new SiteExtension();
94     list = siteExtension.loadAllForSiteContext( TestData.siteContext1 );
95
96     assertNotNull( list );
97     assertEquals( 1, list.size() );
98
99     siteExtension = ( SiteExtension )list.get( 0 );
100     assertEquals( "com.methodhead.transfer.MockExtension", siteExtension.getString( "class_name" ) );
101
102     //
103
// load for site context 2
104
//
105
siteExtension = new SiteExtension();
106     list = siteExtension.loadAllForSiteContext( TestData.siteContext2 );
107
108     assertNotNull( list );
109     assertEquals( 0, list.size() );
110   }
111
112   public void testGetExtensionsForSiteContext() {
113     TestData.createSiteExtensions();
114
115     //
116
// load for site context 1
117
//
118
siteExtension = new SiteExtension();
119     siteExtensions = siteExtension.getExtensionsForSiteContext( TestData.siteContext1 );
120
121     assertNotNull( siteExtensions );
122     assertEquals( 1, siteExtensions.length );
123     assertEquals( "MockExtension", siteExtensions[ 0 ].getName() );
124
125     //
126
// load for site context 2
127
//
128
siteExtension = new SiteExtension();
129     siteExtensions = siteExtension.getExtensionsForSiteContext( TestData.siteContext2 );
130
131     assertNotNull( siteExtensions );
132     assertEquals( 0, siteExtensions.length );
133   }
134
135   public void testLoad() {
136     TestData.createSiteExtensions();
137
138     //
139
// load a specific site extension
140
//
141
siteExtension = new SiteExtension();
142     siteExtension.load( TestData.siteContext1, "com.methodhead.transfer.MockExtension" );
143
144     assertEquals( 1, siteExtension.getInt( "sitecontext_id" ) );
145     assertEquals( true, siteExtension.getBoolean( "enabled" ) );
146     assertEquals( "com.methodhead.transfer.MockExtension", siteExtension.getString( "class_name" ) );
147
148     //
149
// load a non-existant site extension
150
//
151
try {
152       siteExtension.load( TestData.siteContext1, "invalid" );
153       fail( "No exception thrown." );
154     }
155     catch ( Exception JavaDoc e ) {}
156   }
157
158   public void testSave() {
159     TestData.createSiteExtensions();
160
161     //
162
// save an unload site extension
163
//
164
try {
165       siteExtension = new SiteExtension();
166       siteExtension.save();
167       fail();
168     }
169     catch ( Exception JavaDoc e ) {}
170
171     //
172
// update a site extension
173
//
174
TestData.siteExtension1.setBoolean( "enabled", false );
175     TestData.siteExtension1.save();
176
177     siteExtension = new SiteExtension();
178     siteExtension.load( TestData.siteContext1, "com.methodhead.transfer.MockExtension" );
179
180     assertEquals( false, siteExtension.getBoolean( "enabled" ) );
181   }
182
183   public void testDelete() {
184     TestData.createSiteExtensions();
185
186     //
187
// delete an unload site extension
188
//
189
try {
190       siteExtension = new SiteExtension();
191       siteExtension.delete();
192       fail();
193     }
194     catch ( Exception JavaDoc e ) {}
195
196     //
197
// delete a site extension
198
//
199
TestData.siteExtension1.delete();
200
201     siteExtension = new SiteExtension();
202
203     try {
204       siteExtension.load( TestData.siteContext1, "com.methodhead.transfer.MockExtension" );
205       fail();
206     }
207     catch ( Exception JavaDoc e ) {}
208   }
209
210   public void testIsExtensionActive() {
211     TestData.createSiteExtensions();
212
213     siteExtension = new SiteExtension();
214
215     //
216
// an extension that exists for a site context and is enabled is active
217
//
218
assertEquals( true, siteExtension.isExtensionActive( TestData.siteContext1, "com.methodhead.transfer.MockExtension" ) );
219
220     //
221
// an extension that exists for a site context but is disabled is not active
222
//
223
TestData.siteExtension1.setBoolean( "enabled", false );
224     TestData.siteExtension1.save();
225
226     assertEquals( false, siteExtension.isExtensionActive( TestData.siteContext1, "com.methodhead.transfer.MockExtension" ) );
227
228     //
229
// an extension that doesn't exist for a site context is not active
230
//
231
TestData.siteExtension1.delete();
232
233     assertEquals( false, siteExtension.isExtensionActive( TestData.siteContext1, "com.methodhead.transfer.MockExtension" ) );
234   }
235 }
236
Popular Tags