KickJava   Java API By Example, From Geeks To Geeks.

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


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.io.*;
25 import java.sql.*;
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 SiteMapTest extends TestCase {
33
34   static {
35     TestUtils.initLogger();
36     TestUtils.initDb();
37   }
38
39   public SiteMapTest( String JavaDoc name ) {
40     super( name );
41   }
42
43   private SiteContext siteContext1_ = null;
44
45   private Page page1_ = null;
46   private Page page2_ = null;
47   private Page page3_ = null;
48   private Page page4_ = null;
49   private Page page5_ = null;
50
51   private Link link1_ = null;
52   private Link link2_ = null;
53   private Link link3_ = null;
54   private Link link4_ = null;
55   private Link link5_ = null;
56
57   protected void createData() {
58
59     // Link1
60
// Link2 (hidden)
61
// Link3
62
// Link4
63
// Link5
64
link1_ = new Link();
65     link1_.setTitle( "Link1" );
66     link1_.setPageId( page1_.getInt( "id" ) );
67
68     link2_ = new Link();
69     link2_.setTitle( "Link2" );
70     link2_.setPageId( page2_.getInt( "id" ) );
71
72     link3_ = new Link();
73     link3_.setTitle( "Link3" );
74     link3_.setPageId( page3_.getInt( "id" ) );
75
76     link4_ = new Link();
77     link4_.setTitle( "Link4" );
78     link4_.setPageId( page4_.getInt( "id" ) );
79
80     link5_ = new Link();
81     link5_.setTitle( "Link5" );
82     link5_.setPageId( page5_.getInt( "id" ) );
83
84     link1_.add( link2_ );
85     link2_.add( link3_ );
86     link1_.add( link4_ );
87     link1_.add( link5_ );
88   }
89
90   protected void setUp() {
91     try {
92       ConnectionSingleton.runBatchUpdate( new FileReader( "webapp/WEB-INF/db/transfer-reset.sql" ) );
93
94       siteContext1_ = new SiteContext();
95       siteContext1_.saveNew();
96
97       page1_ = new Page();
98       page1_.setString( "title", "Page1" );
99       page1_.setString( "aliasname", "page1" );
100       page1_.setSiteContext( SiteContext.getDefaultContext() );
101       page1_.saveNew();
102
103       page2_ = new Page();
104       page2_.setString( "title", "Page2" );
105       page2_.setString( "aliasname", "page2" );
106       page2_.setBoolean( "hidden", true );
107       page2_.setSiteContext( SiteContext.getDefaultContext() );
108       page2_.saveNew();
109
110       page3_ = new Page();
111       page3_.setString( "title", "Page3" );
112       page3_.setString( "aliasname", "page3" );
113       page3_.setSiteContext( SiteContext.getDefaultContext() );
114       page3_.saveNew();
115
116       page4_ = new Page();
117       page4_.setString( "title", "Page4" );
118       page4_.setString( "aliasname", "page4" );
119       page4_.setSiteContext( SiteContext.getDefaultContext() );
120       page4_.saveNew();
121
122       page5_ = new Page();
123       page5_.setString( "title", "Page5" );
124       page5_.setString( "aliasname", "page5" );
125       page5_.setSiteContext( SiteContext.getDefaultContext() );
126       page5_.saveNew();
127     }
128     catch ( Exception JavaDoc e ) {
129       fail( e.getMessage() );
130     }
131   }
132
133   protected void tearDown() {
134   }
135
136   public void testFind() {
137     try {
138       createData();
139
140       SiteMap siteMap = null;
141       Link link = null;
142
143       siteMap = new SiteMap();
144       siteMap.setSiteContext( SiteContext.getDefaultContext() );
145       siteMap.setRoot( link1_ );
146
147       assertEquals( link1_, siteMap.find( 1 ) );
148       assertEquals( link2_, siteMap.find( 2 ) );
149       assertEquals( link3_, siteMap.find( 3 ) );
150       assertEquals( link4_, siteMap.find( 4 ) );
151       assertEquals( link5_, siteMap.find( 5 ) );
152     }
153     catch ( Exception JavaDoc e ) {
154       e.printStackTrace();
155       fail();
156     }
157   }
158
159   public void testSave() {
160     try {
161       SiteMap siteMap = null;
162       Link link = null;
163
164       createData();
165       siteMap = new SiteMap();
166       siteMap.setSiteContext( SiteContext.getDefaultContext() );
167       siteMap.setRoot( link1_ );
168       siteMap.save();
169
170       ResultSet rs = ConnectionSingleton.runQuery( "SELECT page_id,parent_id,rank FROM shim_link WHERE sitecontext_id=0 ORDER BY page_id" );
171
172       assertTrue( rs.next() );
173       assertEquals( 1, rs.getInt( "page_id" ) );
174       assertEquals( 0, rs.getInt( "parent_id" ) );
175       assertEquals( 0, rs.getInt( "rank" ) );
176
177       assertTrue( rs.next() );
178       assertEquals( 2, rs.getInt( "page_id" ) );
179       assertEquals( 1, rs.getInt( "parent_id" ) );
180       assertEquals( 0, rs.getInt( "rank" ) );
181
182       assertTrue( rs.next() );
183       assertEquals( 3, rs.getInt( "page_id" ) );
184       assertEquals( 2, rs.getInt( "parent_id" ) );
185       assertEquals( 0, rs.getInt( "rank" ) );
186
187       assertTrue( rs.next() );
188       assertEquals( 4, rs.getInt( "page_id" ) );
189       assertEquals( 1, rs.getInt( "parent_id" ) );
190       assertEquals( 1, rs.getInt( "rank" ) );
191
192       assertTrue( rs.next() );
193       assertEquals( 5, rs.getInt( "page_id" ) );
194       assertEquals( 1, rs.getInt( "parent_id" ) );
195       assertEquals( 2, rs.getInt( "rank" ) );
196       
197       assertTrue( !rs.next() );
198
199       ConnectionSingleton.close( rs );
200
201       //
202
// save for a different site context
203
//
204
siteMap = new SiteMap();
205       siteMap.setSiteContext( siteContext1_ );
206       siteMap.setRoot( link1_ );
207       siteMap.save();
208
209       rs = ConnectionSingleton.runQuery( "SELECT page_id,parent_id,rank FROM shim_link WHERE sitecontext_id=1 ORDER BY page_id" );
210
211       assertTrue( rs.next() );
212       assertEquals( 1, rs.getInt( "page_id" ) );
213       assertEquals( 0, rs.getInt( "parent_id" ) );
214       assertEquals( 0, rs.getInt( "rank" ) );
215
216       assertTrue( rs.next() );
217       assertEquals( 2, rs.getInt( "page_id" ) );
218       assertEquals( 1, rs.getInt( "parent_id" ) );
219       assertEquals( 0, rs.getInt( "rank" ) );
220
221       assertTrue( rs.next() );
222       assertEquals( 3, rs.getInt( "page_id" ) );
223       assertEquals( 2, rs.getInt( "parent_id" ) );
224       assertEquals( 0, rs.getInt( "rank" ) );
225
226       assertTrue( rs.next() );
227       assertEquals( 4, rs.getInt( "page_id" ) );
228       assertEquals( 1, rs.getInt( "parent_id" ) );
229       assertEquals( 1, rs.getInt( "rank" ) );
230
231       assertTrue( rs.next() );
232       assertEquals( 5, rs.getInt( "page_id" ) );
233       assertEquals( 1, rs.getInt( "parent_id" ) );
234       assertEquals( 2, rs.getInt( "rank" ) );
235       
236       assertTrue( !rs.next() );
237
238       ConnectionSingleton.close( rs );
239
240       //
241
// save an empty site map
242
//
243
siteMap.setRoot( null );
244       siteMap.save();
245
246       rs = ConnectionSingleton.runQuery( "SELECT page_id,parent_id,rank FROM shim_link WHERE sitecontext_id=1 ORDER BY page_id" );
247
248       assertTrue( !rs.next() );
249
250       ConnectionSingleton.close( rs );
251     }
252     catch ( Exception JavaDoc e ) {
253       e.printStackTrace();
254       fail();
255     }
256   }
257
258   public void testLoad() {
259     try {
260       SiteMap siteMap = null;
261       Link link = null;
262
263       createData();
264       siteMap = new SiteMap();
265       siteMap.setSiteContext( SiteContext.getDefaultContext() );
266       siteMap.setRoot( link1_ );
267       siteMap.save();
268
269       siteMap = new SiteMap();
270       siteMap.setSiteContext( SiteContext.getDefaultContext() );
271       siteMap.load();
272
273       assertNotNull( siteMap.getRoot() );
274
275       link = ( Link )siteMap.getRoot();
276
277       assertEquals( link.getPageId(), page1_.getInt( "id" ) );
278       assertEquals( "Page1", link.getTitle() );
279       assertEquals( "page1", link.getAlias() );
280       assertEquals( false, link.getHidden() );
281       assertEquals( 3, link.getChildCount() );
282
283       link = ( Link )siteMap.getRoot().getChildAt( 0 );
284
285       assertEquals( link.getPageId(), page2_.getInt( "id" ) );
286       assertEquals( "Page2", link.getTitle() );
287       assertEquals( "page2", link.getAlias() );
288       assertEquals( true, link.getHidden() );
289       assertEquals( 1, link.getChildCount() );
290
291       link = ( Link )link.getChildAt( 0 );
292
293       assertEquals( link.getPageId(), page3_.getInt( "id" ) );
294       assertEquals( "Page3", link.getTitle() );
295       assertEquals( "page3", link.getAlias() );
296       assertEquals( false, link.getHidden() );
297       assertEquals( 0, link.getChildCount() );
298
299       link = ( Link )siteMap.getRoot().getChildAt( 1 );
300
301       assertEquals( link.getPageId(), page4_.getInt( "id" ) );
302       assertEquals( "Page4", link.getTitle() );
303       assertEquals( "page4", link.getAlias() );
304       assertEquals( false, link.getHidden() );
305       assertEquals( 0, link.getChildCount() );
306
307       link = ( Link )siteMap.getRoot().getChildAt( 2 );
308
309       assertEquals( link.getPageId(), page5_.getInt( "id" ) );
310       assertEquals( "Page5", link.getTitle() );
311       assertEquals( "page5", link.getAlias() );
312       assertEquals( false, link.getHidden() );
313       assertEquals( 0, link.getChildCount() );
314     }
315     catch ( Exception JavaDoc e ) {
316       e.printStackTrace();
317       fail();
318     }
319   }
320
321 }
322
Popular Tags