KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > methodhead > sitecontext > SiteContextTest


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.sitecontext;
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.aikp.*;
29 import com.methodhead.persistable.*;
30 import com.methodhead.test.*;
31 import com.methodhead.event.*;
32 import com.mockobjects.servlet.*;
33
34 public class SiteContextTest extends DbTestCase {
35
36   ResultSet rs = null;
37   SiteContext siteContext = null;
38   Event event = null;
39
40   public SiteContextTest( String JavaDoc name ) {
41     super( name );
42   }
43
44   protected List list = null;
45
46   protected SiteContext siteContext2 = null;
47   protected SiteContext siteContext3 = null;
48   protected SiteContext siteContext4 = null;
49
50   protected SiteContext siteContext1_ = null;
51   protected SiteContext siteContext2_ = null;
52
53   protected void createData() {
54     siteContext1_ = new SiteContext();
55     siteContext1_.getDomains().add( "www.methodhead.com" );
56     siteContext1_.getDomains().add( "methodhead.com" );
57     siteContext1_.saveNew();
58
59     siteContext2_ = new SiteContext();
60     siteContext2_.setString( "path", "sub" );
61     siteContext2_.getDomains().add( "dh.com" );
62     siteContext2_.getDomains().add( "dh.net" );
63     siteContext2_.saveNew();
64
65     Event.log( siteContext1_, "test event" );
66   }
67
68   protected void setUp() {
69     //setLogLevel( Level.DEBUG );
70
try {
71       ConnectionSingleton.runBatchUpdate( new FileReader( "webapp/WEB-INF/db/transfer-reset.sql" ) );
72     }
73     catch ( Exception JavaDoc e ) {
74       fail( e.getMessage() );
75     }
76   }
77
78   protected void tearDown() {
79   }
80
81   public void testHashCode() {
82     try {
83       SiteContext siteContext = null;
84
85       siteContext = new SiteContext();
86
87       assertEquals( 0, siteContext.hashCode() );
88
89       siteContext.setInt( "id", 666 );
90
91       assertEquals( 666, siteContext.hashCode() );
92     }
93     catch ( Exception JavaDoc e ) {
94       e.printStackTrace();
95       fail();
96     }
97   }
98
99   public void testEquals() {
100     try {
101       SiteContext siteContext1 = null;
102       SiteContext siteContext2 = null;
103
104       siteContext1 = new SiteContext();
105       siteContext2 = new SiteContext();
106
107       assertTrue( !siteContext1.equals( null ) );
108       assertTrue( !siteContext1.equals( new String JavaDoc() ) );
109       assertTrue( siteContext1.equals( siteContext2 ) );
110
111       siteContext2.setInt( "id", 666 );
112
113       assertTrue( !siteContext1.equals( siteContext2 ) );
114     }
115     catch ( Exception JavaDoc e ) {
116       e.printStackTrace();
117       fail();
118     }
119   }
120
121   public void testToString() {
122     try {
123       siteContext = new SiteContext();
124       assertEquals( "SiteContext (no domains)", siteContext.toString() );
125
126       siteContext.getDomains().add( "methodhead.com" );
127       siteContext.getDomains().add( "danhensgen.com" );
128       assertEquals( "methodhead.com", siteContext.toString() );
129
130       siteContext.setString( "path", "test" );
131       assertEquals( "methodhead.com/test", siteContext.toString() );
132     }
133     catch ( Exception JavaDoc e ) {
134       e.printStackTrace();
135       fail();
136     }
137   }
138
139   public void testSaveNew() {
140     try {
141       SiteContext siteContext = null;
142       ResultSet rs = null;
143
144       siteContext = new SiteContext();
145       siteContext.getDomains().add( "methodhead.com" );
146       siteContext.getDomains().add( "www.methodhead.com" );
147       siteContext.saveNew();
148       rs = ConnectionSingleton.runQuery( "SELECT path FROM mh_sitecontext WHERE id=" + siteContext.getInt( "id" ) );
149
150       assertNotNull( rs );
151       assertTrue( rs.next() );
152       assertEquals( "", rs.getString( "path" ) );
153       assertTrue( !rs.next() );
154
155       ConnectionSingleton.close( rs);
156       rs = ConnectionSingleton.runQuery( "SELECT name,rank FROM mh_domain WHERE sitecontext_id=" + siteContext.getInt( "id" ) );
157
158       assertNotNull( rs );
159       assertTrue( rs.next() );
160       assertEquals( "methodhead.com", rs.getString( "name" ) );
161       assertEquals( 0, rs.getInt( "rank" ) );
162       assertTrue( rs.next() );
163       assertEquals( "www.methodhead.com", rs.getString( "name" ) );
164       assertEquals( 1, rs.getInt( "rank" ) );
165       assertTrue( !rs.next() );
166
167       ConnectionSingleton.close( rs);
168     }
169     catch ( Exception JavaDoc e ) {
170       e.printStackTrace();
171       fail();
172     }
173   }
174
175   public void testLoad() {
176     try {
177       SiteContext siteContext = null;
178       createData();
179
180       siteContext = new SiteContext();
181       siteContext.load( new IntKey( siteContext1_.getInt( "id" ) ) );
182
183       assertEquals( "", siteContext.getString( "path" ) );
184       assertNotNull( siteContext.getDomains() );
185       assertEquals( 2, siteContext.getDomains().size() );
186       assertEquals( "www.methodhead.com", siteContext.getDomains().get( 0 ) );
187       assertEquals( "methodhead.com", siteContext.getDomains().get( 1 ) );
188     }
189     catch ( Exception JavaDoc e ) {
190       e.printStackTrace();
191       fail();
192     }
193   }
194
195   public void testSave() {
196     try {
197       ResultSet rs = null;
198       SiteContext siteContext = null;
199       createData();
200
201       siteContext = new SiteContext();
202       siteContext.load( new IntKey( siteContext1_.getInt( "id" ) ) );
203       siteContext.getDomains().clear();
204       siteContext.save();
205       rs = ConnectionSingleton.runQuery( "SELECT name FROM mh_domain WHERE sitecontext_id=" + siteContext.getInt( "id" ) );
206
207       assertNotNull( rs );
208       assertTrue( !rs.next() );
209
210       ConnectionSingleton.close( rs );
211       siteContext.getDomains().add( "www.methodhead.com" );
212       siteContext.getDomains().add( "methodhead.com" );
213       siteContext.save();
214       rs = ConnectionSingleton.runQuery( "SELECT name FROM mh_domain WHERE sitecontext_id=" + siteContext.getInt( "id" ) + " ORDER BY rank" );
215
216       assertNotNull( rs );
217       assertTrue( rs.next() );
218       assertEquals( "www.methodhead.com", rs.getString( "name" ) );
219       assertTrue( rs.next() );
220       assertEquals( "methodhead.com", rs.getString( "name" ) );
221       assertTrue( !rs.next() );
222
223       ConnectionSingleton.close( rs );
224     }
225     catch ( Exception JavaDoc e ) {
226       e.printStackTrace();
227       fail();
228     }
229   }
230
231   public void testDelete() {
232     try {
233       ResultSet rs = null;
234       SiteContext siteContext = null;
235       createData();
236
237       siteContext = new SiteContext();
238       siteContext.load( new IntKey( siteContext1_.getInt( "id" ) ) );
239       siteContext.delete();
240       rs = ConnectionSingleton.runQuery( "SELECT path FROM mh_sitecontext WHERE id=" + siteContext.getInt( "id" ) );
241
242       assertNotNull( rs );
243       assertTrue( !rs.next() );
244
245       ConnectionSingleton.close( rs);
246       rs = ConnectionSingleton.runQuery( "SELECT name FROM mh_domain WHERE sitecontext_id=" + siteContext.getInt( "id" ) );
247
248       assertNotNull( rs );
249       assertTrue( !rs.next() );
250
251       ConnectionSingleton.close( rs);
252
253       event = new Event();
254       event.setSiteContext( siteContext1_ );
255       list = event.getEvents( null, null );
256       assertEquals( 0, list.size() );
257     }
258     catch ( Exception JavaDoc e ) {
259       e.printStackTrace();
260       fail();
261     }
262   }
263
264   public void testGetDefaultContext() {
265     try {
266       siteContext = SiteContext.getDefaultContext();
267
268       assertNotNull( siteContext );
269       assertEquals( 0, siteContext.getInt( "id" ) );
270       assertEquals( "", siteContext.getString( "path" ) );
271       assertEquals( 1, siteContext.getDomains().size() );
272       assertEquals( SiteContext.DEFAULTDOMAIN, siteContext.getDomains().get( 0 ) );
273
274       rs = ConnectionSingleton.runQuery( "SELECT path FROM mh_sitecontext WHERE id=0" );
275
276       assertTrue( rs.next() );
277       assertEquals( "", rs.getString( "path" ) );
278
279       ConnectionSingleton.close( rs );
280
281       rs = ConnectionSingleton.runQuery( "SELECT name FROM mh_domain WHERE sitecontext_id=0" );
282
283       assertTrue( rs.next() );
284       assertEquals( SiteContext.DEFAULTDOMAIN, rs.getString( "name" ) );
285
286       ConnectionSingleton.close( rs );
287
288       siteContext.setString( "path", "foo" );
289       siteContext.getDomains().add( "www.methodhead.com" );
290       siteContext.save();
291       siteContext = SiteContext.getDefaultContext();
292
293       assertNotNull( siteContext );
294       assertEquals( 0, siteContext.getInt( "id" ) );
295       assertEquals( "foo", siteContext.getString( "path" ) );
296       assertEquals( 2, siteContext.getDomains().size() );
297     }
298     catch ( Exception JavaDoc e ) {
299       e.printStackTrace();
300       fail();
301     }
302   }
303
304   public void testSetContext() {
305     try {
306       SiteContext siteContext = null;
307       MockHttpServletRequest request = null;
308       MockHttpSession session = null;
309
310       session = new MockHttpSession();
311       request = new MockHttpServletRequest();
312       request.setSession( session );
313       session.setExpectedAttribute( SiteContext.SITECONTEXT_KEY, siteContext );
314       SiteContext.setContext( request, siteContext );
315       
316       session.verify();
317     }
318     catch ( Exception JavaDoc e ) {
319       e.printStackTrace();
320       fail();
321     }
322   }
323
324   public void testGetContext() {
325     try {
326       SiteContext siteContext = null;
327       SiteContext siteContext2 = null;
328       MockHttpServletRequest request = null;
329       MockHttpSession session = null;
330
331 /* these won't work because MockHttpServletRequest isn't done yet...
332
333       session = new MockHttpSession();
334       session.setupGetAttribute( SiteContext.SITECONTEXT_KEY, null );
335       request = new MockHttpServletRequest();
336       request.setupGetAttribute( SiteContext.SITECONTEXT_KEY );
337       request.setSession( session );
338       siteContext = SiteContext.getContext( request );
339     
340       session.verify();
341       assertNull( siteContext );
342       siteContext = new SiteContext();
343       siteContext.setInt( "id", 666 );
344       session = new MockHttpSession();
345       session.setupGetAttribute( SiteContext.SITECONTEXT_KEY, siteContext );
346       request = new MockHttpServletRequest();
347       request.setSession( session );
348       siteContext2 = SiteContext.getContext( request );
349     
350       session.verify();
351       assertNotNull( siteContext );
352       assertEquals( siteContext, siteContext2 );
353
354       siteContext = new SiteContext();
355       siteContext.setInt( "id", 666 );
356       session = new MockHttpSession();
357       session.setupGetAttribute( SiteContext.SITECONTEXT_KEY, siteContext );
358       request = new MockHttpServletRequest();
359       request.setSession( session );
360       siteContext2 = SiteContext.getContext( request );
361     
362       session.verify();
363       assertEquals( siteContext, siteContext2 );
364 */

365     }
366     catch ( Exception JavaDoc e ) {
367       e.printStackTrace();
368       fail();
369     }
370   }
371
372   public void testLoadForDomainAndPath() {
373     try {
374       createData();
375       SiteContext context = null;
376
377       context = new SiteContext();
378
379       assertTrue( !context.loadForDomainAndPath( "foo.com", "" ) );
380       assertTrue( context.loadForDomainAndPath( "methodhead.com", "" ) );
381       assertEquals( siteContext1_, context );
382       assertEquals( "www.methodhead.com", siteContext1_.getDomains().get( 0 ) );
383       assertTrue( !context.loadForDomainAndPath( "dh.com", "" ) );
384       assertTrue( context.loadForDomainAndPath( "dh.com", "sub" ) );
385       assertEquals( siteContext2_, context );
386       assertTrue( context.loadForDomainAndPath( "dh.net", "sub" ) );
387       assertEquals( siteContext2_, context );
388     }
389     catch ( Exception JavaDoc e ) {
390       e.printStackTrace();
391       fail();
392     }
393   }
394
395   public void testCompareTo() {
396     try {
397       siteContext = new SiteContext(); // aaa
398
siteContext2 = new SiteContext(); // bbb
399
siteContext3 = new SiteContext(); // aaa/aaa
400
siteContext4 = new SiteContext(); // aaa/bbb
401

402       siteContext.getDomains().add( "aaa" );
403       siteContext2.getDomains().add( "bbb" );
404       siteContext3.getDomains().add( "aaa" );
405       siteContext3.setString( "path", "aaa" );
406       siteContext4.getDomains().add( "aaa" );
407       siteContext4.setString( "path", "bbb" );
408       
409       assertTrue( siteContext.compareTo( null ) < 0 );
410       assertTrue( siteContext.compareTo( new Integer JavaDoc( 666 ) ) < 0 );
411       assertTrue( siteContext.compareTo( siteContext2 ) < 0 );
412       assertTrue( siteContext.compareTo( siteContext ) == 0 );
413       assertTrue( siteContext2.compareTo( siteContext ) > 0 );
414       assertTrue( siteContext.compareTo( siteContext3 ) < 0 );
415       assertTrue( siteContext3.compareTo( siteContext ) > 0 );
416       assertTrue( siteContext3.compareTo( siteContext4 ) < 0 );
417       assertTrue( siteContext4.compareTo( siteContext3 ) > 0 );
418     }
419     catch ( Exception JavaDoc e ) {
420       e.printStackTrace();
421       fail();
422     }
423   }
424
425   public void testLoadAll() {
426     try {
427       createData();
428
429       list = SiteContext.loadAll();
430       assertNotNull( list );
431       assertEquals( 2, list.size() );
432
433       siteContext = ( SiteContext )list.get( 0 );
434       assertTrue( siteContext.compareTo( siteContext2_ ) == 0 );
435
436       siteContext = ( SiteContext )list.get( 1 );
437       assertTrue( siteContext.compareTo( siteContext1_ ) == 0 );
438     }
439     catch ( Exception JavaDoc e ) {
440       e.printStackTrace();
441       fail();
442     }
443   }
444 }
445
Popular Tags