1 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 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_ = 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 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 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 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 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 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 e ) { 316 e.printStackTrace(); 317 fail(); 318 } 319 } 320 321 } 322 | Popular Tags |