KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > methodhead > shim > PageTest


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.shim;
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.test.*;
30 import com.methodhead.sitecontext.*;
31
32 public class PageTest extends TestCase {
33
34   static {
35     TestUtils.initDb();
36     TestUtils.initLogger();
37   }
38
39   public PageTest( String JavaDoc name ) {
40     super( name );
41   }
42
43   private Page page = null;
44   private Page page2 = null;
45   private Panel panel = null;
46
47   SiteContext siteContext1_ = null;
48   SiteContext siteContext2_ = null;
49   Page page1_ = null;
50   Page page2_ = null;
51   Page page3_ = null;
52
53   protected void createData() {
54     Panel panel = null;
55
56     siteContext1_ = new SiteContext();
57     siteContext1_.set( "path", "sitecontext1" );
58     siteContext1_.saveNew();
59
60     panel = new Panel();
61     panel.setName( "body" );
62     panel.setModuleClass( "com.methodhead.shim.MockModule" );
63
64     page1_ = new Page();
65     page1_.set( "title", "Page1" );
66     page1_.set( "alttitle", "altPage1" );
67     page1_.set( "aliasname", "page1" );
68     page1_.set( "template", "template.jsp" );
69     page1_.set( "metadescription", "metadescription" );
70     page1_.set( "metakeywords", "metakeywords" );
71     page1_.addPanel( panel );
72     page1_.setSiteContext( siteContext1_ );
73     page1_.saveNew();
74
75     siteContext2_ = new SiteContext();
76     siteContext2_.set( "path", "sitecontext2" );
77     siteContext2_.saveNew();
78
79     panel = new Panel();
80     panel.setName( "body" );
81     panel.setModuleClass( "com.methodhead.shim.MockModule" );
82
83     page2_ = new Page();
84     page2_.set( "title", "Page2" );
85     page2_.set( "aliasname", "page2" );
86     page2_.set( "template", "template.jsp" );
87     page2_.addPanel( panel );
88     page2_.setSiteContext( siteContext2_ );
89     page2_.saveNew();
90
91     panel = new Panel();
92     panel.setName( "body" );
93     panel.setModuleClass( "com.methodhead.shim.MockModule" );
94
95     page3_ = new Page();
96     page3_.set( "title", "Page3" );
97     page3_.set( "aliasname", "page3" );
98     page3_.set( "template", "template.jsp" );
99     page3_.addPanel( panel );
100     page3_.setSiteContext( siteContext2_ );
101     page3_.saveNew();
102   }
103
104   protected void setUp() {
105     //setLogLevel( Level.DEBUG );
106
try {
107       ConnectionSingleton.runBatchUpdate( new FileReader( "webapp/WEB-INF/db/transfer-reset.sql" ) );
108     }
109     catch ( Exception JavaDoc e ) {
110       fail( e.getMessage() );
111     }
112   }
113
114   protected void tearDown() {
115   }
116
117   public void testToString() {
118     try {
119       page = new Page();
120       assertEquals( "", page.toString() );
121
122       page.setString( "title", "Page1" );
123       assertEquals( "Page1", page.toString() );
124     }
125     catch ( Exception JavaDoc e ) {
126       e.printStackTrace();
127       fail();
128     }
129   }
130
131   public void testGetSiteContext() {
132     try {
133       Page page = null;
134       SiteContext siteContext = null;
135
136       page = new Page();
137       siteContext = SiteContext.getDefaultContext();
138
139       //
140
// get site context
141
//
142
try {
143         page.getSiteContext();
144         fail( "Page.getSiteContext() did not throw an exception." );
145       }
146       catch ( ShimException e ) {
147         // success
148
}
149
150       page.setSiteContext( siteContext );
151
152       assertNotNull( page.getSiteContext() );
153       assertEquals( siteContext, page.getSiteContext() );
154     }
155     catch ( Exception JavaDoc e ) {
156       e.printStackTrace();
157       fail();
158     }
159   }
160
161   public void testAddPanel() {
162     try {
163       Page page = null;
164       Panel panel = null;
165       Map panelMap = null;
166
167       //
168
// add a single panel
169
//
170
page = new Page();
171       panel = new Panel();
172       panel.setName( "body" );
173       panel.setModuleClass( "com.methodhead.shim.MockModule" );
174       page.addPanel( panel );
175       panelMap = page.getPanels();
176
177       assertNotNull( panelMap );
178       assertEquals( 1, panelMap.keySet().size() );
179
180       panel = ( Panel )panelMap.get( "body" );
181
182       assertNotNull( panel );
183       assertEquals( "body", panel.getName() );
184       assertEquals( "com.methodhead.shim.MockModule", panel.getModuleClass() );
185
186       //
187
// add the same panel again
188
//
189
try {
190         page.addPanel( panel );
191         fail( "Page.addPanel() did not through an exception." );
192       }
193       catch ( ShimException e ) {
194         // success
195
}
196     }
197     catch ( Exception JavaDoc e ) {
198       e.printStackTrace();
199       fail();
200     }
201   }
202
203   public void testSaveNew() {
204     try {
205       Page page = null;
206       Panel panel = null;
207       ResultSet rs = null;
208
209       //
210
// save page for default site context
211
//
212
page = new Page();
213       page.setString( "title", "Test" );
214       page.setString( "template", "template.jsp" );
215       page.setString( "aliasname", "test" );
216       panel = new Panel();
217       panel.setName( "body" );
218       panel.setModuleClass( "com.methodhead.shim.MockModule" );
219       page.addPanel( panel );
220       page.setSiteContext( SiteContext.getDefaultContext() );
221       page.saveNew();
222       rs = ConnectionSingleton.runQuery( "SELECT sitecontext_id FROM shim_page WHERE id=" + page.getInt( "id" ) );
223
224       assertTrue( rs.next() );
225       assertEquals( 0, rs.getInt( "sitecontext_id" ) );
226       assertTrue( !rs.next() );
227
228       ConnectionSingleton.close( rs );
229       rs = ConnectionSingleton.runQuery( "SELECT name,module FROM shim_panel WHERE page_id=" + page.getInt( "id" ) );
230
231       assertTrue( rs.next() );
232       assertEquals( "body", rs.getString( "name" ) );
233       assertEquals( "com.methodhead.shim.MockModule", rs.getString( "module" ) );
234       assertTrue( !rs.next() );
235
236       ConnectionSingleton.close( rs );
237     }
238     catch ( Exception JavaDoc e ) {
239       e.printStackTrace();
240       fail();
241     }
242   }
243
244   public void testLoad() {
245     try {
246       createData();
247
248       //
249
// load for the wrong site context
250
//
251
try {
252         page = new Page();
253         page.setSiteContext( SiteContext.getDefaultContext() );
254         page.load( page1_.getKey() );
255         fail( "No exception thrown." );
256       }
257       catch ( Exception JavaDoc e ) {
258       }
259
260       //
261
// typical
262
//
263
page = new Page();
264       page.setSiteContext( siteContext1_ );
265       page.load( page1_.getKey() );
266
267       assertEquals( page1_.getString( "title" ), page.getString( "title" ) );
268       assertEquals( page1_.getString( "aliasname" ), page.getString( "aliasname" ) );
269       assertEquals( 1, page.getPanels().keySet().size() );
270
271       panel = ( Panel )page.getPanels().get( "body" );
272
273       assertEquals( "com.methodhead.shim.MockModule", panel.getModuleClass() );
274     }
275     catch ( Exception JavaDoc e ) {
276       e.printStackTrace();
277       fail();
278     }
279   }
280
281   public void testSave() {
282     try {
283       Page page = null;
284       Panel panel = null;
285       createData();
286
287       //
288
// save page for default site context
289
//
290
page = new Page();
291       page.setSiteContext( siteContext1_ );
292       page.load( page1_.getKey() );
293       page.setString( "title", "Page2" );
294       page.setString( "aliasname", "page2" );
295       panel = ( Panel )page.getPanels().get( "body" );
296       panel.setName( "body" );
297       panel.setModuleClass( "com.methodhead.shim.FooModule" );
298       page.save();
299       page = new Page();
300       page.setSiteContext( siteContext1_ );
301       page.load( page1_.getKey() );
302
303       assertEquals( "Page2", page.getString( "title" ) );
304       assertEquals( "page2", page.getString( "aliasname" ) );
305
306       panel = ( Panel )page.getPanels().get( "body" );
307
308       assertEquals( "com.methodhead.shim.FooModule", panel.getModuleClass() );
309     }
310     catch ( Exception JavaDoc e ) {
311       e.printStackTrace();
312       fail();
313     }
314   }
315
316   public void testDelete() {
317     try {
318       Page page = null;
319       ResultSet rs = null;
320       createData();
321
322       //
323
// save page for default site context
324
//
325
MockModule.setDestroyed( false );
326       page = new Page();
327       page.setSiteContext( siteContext1_ );
328       page.loadFull( page1_.getKey() );
329       page.delete();
330       rs = ConnectionSingleton.runQuery( "SELECT title FROM shim_page WHERE id=" + page1_.getInt( "id" ) );
331
332       assertTrue( !rs.next() );
333
334       ConnectionSingleton.close( rs );
335       rs = ConnectionSingleton.runQuery( "SELECT name FROM shim_panel WHERE page_id=" + page1_.getInt( "id" ) );
336
337       assertTrue( !rs.next() );
338
339       assertTrue( MockModule.isDestroyed() );
340
341       ConnectionSingleton.close( rs );
342     }
343     catch ( Exception JavaDoc e ) {
344       e.printStackTrace();
345       fail();
346     }
347   }
348
349   public void testLoadFull() {
350     try {
351       Page page = null;
352       Panel panel = null;
353       createData();
354
355       //
356
// save page for default site context
357
//
358
page = new Page();
359       page.setSiteContext( siteContext1_ );
360       page.loadFull( page1_.getKey() );
361
362       assertEquals( page1_.getString( "title" ), page.getString( "title" ) );
363       assertEquals( page1_.getString( "aliasname" ), page.getString( "aliasname" ) );
364       assertEquals( 1, page.getPanels().keySet().size() );
365
366       panel = ( Panel )page.getPanels().get( "body" );
367
368       assertNotNull( panel.getModule() );
369       assertEquals( "com.methodhead.shim.MockModule", panel.getModule().getClass().getName() );
370     }
371     catch ( Exception JavaDoc e ) {
372       e.printStackTrace();
373       fail();
374     }
375   }
376
377   public void testCompareTo() {
378     try {
379       Page page1 = new Page();
380       page1.setString( "title", "page1" );
381
382       Page page2 = new Page();
383       page2.setString( "title", "Page2" );
384
385       Page page3 = new Page();
386       page3.setString( "title", "Page3" );
387
388       assertTrue( page1.compareTo( null ) > 0 );
389       assertTrue( page1.compareTo( "foo" ) > 0 );
390       assertTrue( page1.compareTo( page2 ) < 0 );
391       assertEquals( 0, page1.compareTo( page1 ) );
392       assertTrue( page3.compareTo( page1 ) > 0 );
393     }
394     catch ( Exception JavaDoc e ) {
395       e.printStackTrace();
396       fail();
397     }
398   }
399
400   public void testLoadAll() {
401     try {
402       Page page = null;
403       Panel panel = null;
404       List l = null;
405
406       createData();
407
408       //
409
// save page for default site context
410
//
411
page = new Page();
412       page.setSiteContext( siteContext1_ );
413       l = page.loadAll();
414
415       assertNotNull( l );
416       assertEquals( 1, l.size() );
417
418       page = ( Page )l.get( 0 );
419
420       assertEquals( page1_.getInt( "id" ), page.getInt( "id" ) );
421       assertEquals( siteContext1_, page.getSiteContext() );
422
423       page.setSiteContext( siteContext2_ );
424       l = page.loadAll();
425
426       assertNotNull( l );
427       assertEquals( 2, l.size() );
428
429       page = ( Page )l.get( 0 );
430
431       assertEquals( page2_.getInt( "id" ), page.getInt( "id" ) );
432       assertEquals( siteContext2_, page.getSiteContext() );
433
434       page = ( Page )l.get( 1 );
435
436       assertEquals( page3_.getInt( "id" ), page.getInt( "id" ) );
437       assertEquals( siteContext2_, page.getSiteContext() );
438     }
439     catch ( Exception JavaDoc e ) {
440       e.printStackTrace();
441       fail();
442     }
443   }
444
445   public void testLoadForAlias() {
446     try {
447       createData();
448
449       page = new Page();
450       page.setSiteContext( siteContext1_ );
451       page.loadForAlias( "page1" );
452
453       assertEquals( page1_.getString( "title" ), page.getString( "title" ) );
454       assertEquals( page1_.getString( "aliasname" ), page.getString( "aliasname" ) );
455       assertEquals( 1, page.getPanels().keySet().size() );
456
457       panel = ( Panel )page.getPanels().get( "body" );
458
459       assertEquals( "com.methodhead.shim.MockModule", panel.getModuleClass() );
460     }
461     catch ( Exception JavaDoc e ) {
462       e.printStackTrace();
463       fail();
464     }
465   }
466
467   public void testSetDefaultAliasName() {
468     try {
469       createData();
470
471       page = new Page();
472       page.setSiteContext( siteContext1_ );
473
474       try {
475         page.setString( "title", "" );
476         page.setDefaultAliasName();
477         fail( "Exception not thrown." );
478       }
479       catch ( Exception JavaDoc e ) {}
480
481       page.setString( "title", "Test" );
482       page.setDefaultAliasName();
483       assertEquals( "test", page.getString( "aliasname" ) );
484
485       page.setString( "title", "Test Page" );
486       page.setDefaultAliasName();
487       assertEquals( "testpage", page.getString( "aliasname" ) );
488
489       page.setString( "title", "Test$Page!" );
490       page.setDefaultAliasName();
491       assertEquals( "testpage", page.getString( "aliasname" ) );
492
493       page.setString( "title", "Page1" );
494       page.setDefaultAliasName();
495       assertEquals( "page12", page.getString( "aliasname" ) );
496
497       page1_.setDefaultAliasName();
498       assertEquals( "page1", page1_.getString( "aliasname" ) );
499     }
500     catch ( Exception JavaDoc e ) {
501       e.printStackTrace();
502       fail();
503     }
504   }
505
506   public void testLoadFullForAlias() {
507     try {
508       Page page = null;
509       Panel panel = null;
510       createData();
511
512       //
513
// save page for default site context
514
//
515
page = new Page();
516       page.setSiteContext( siteContext1_ );
517       page.loadFullForAlias( "page1" );
518
519       assertEquals( page1_.getString( "title" ), page.getString( "title" ) );
520       assertEquals( page1_.getString( "aliasname" ), page.getString( "aliasname" ) );
521       assertEquals( 1, page.getPanels().keySet().size() );
522
523       panel = ( Panel )page.getPanels().get( "body" );
524
525       assertNotNull( panel.getModule() );
526       assertEquals( "com.methodhead.shim.MockModule", panel.getModule().getClass().getName() );
527     }
528     catch ( Exception JavaDoc e ) {
529       e.printStackTrace();
530       fail();
531     }
532   }
533
534   public void testCopy() {
535     try {
536       createData();
537       MockModule.setCopied( false );
538
539       page = new Page();
540       page.setSiteContext( siteContext1_ );
541       page.loadFull( page1_.getKey() );
542
543       page2 = page.copy();
544       assertNotNull( page2 );
545       assertEquals( 4, page2.getInt( "id" ) );
546       assertEquals( "Page1", page2.getString( "title" ) );
547       assertEquals( "altPage1", page2.getString( "alttitle" ) );
548       assertEquals( "page12", page2.getString( "aliasname" ) );
549       assertEquals( "metadescription", page2.getString( "metadescription" ) );
550       assertEquals( "metakeywords", page2.getString( "metakeywords" ) );
551
552       panel = ( Panel )page2.getPanels().get( "body" );
553       assertNotNull( panel );
554       assertEquals( "body", panel.getName() );
555       assertEquals( "com.methodhead.shim.MockModule", panel.getModuleClass() );
556
557       assertTrue( MockModule.isCopied() );
558     }
559     catch ( Exception JavaDoc e ) {
560       e.printStackTrace();
561       fail();
562     }
563   }
564 }
565
Popular Tags