KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > methodhead > res > FileTreeTest


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.res;
22
23 import java.util.*;
24 import java.sql.*;
25 import junit.framework.*;
26 import org.apache.log4j.*;
27 import com.methodhead.persistable.*;
28 import com.methodhead.test.*;
29 import com.methodhead.tree.*;
30 import java.io.*;
31 import org.apache.commons.io.*;
32
33 public class FileTreeTest extends TestCase {
34
35   private File testDir_ = null;
36   private File testDir1_ = null;
37   private File testDir2_ = null;
38   private File testDir3_ = null;
39   private File testDir4_ = null;
40   private File testFile1_ = null;
41   private File testFile2_ = null;
42   private File testFile3_ = null;
43   private File testFile4_ = null;
44
45   private FileManager fileManager = null;
46   private File file = null;
47   private Directory directory = null;
48   private File[] files = null;
49   private String JavaDoc[] fileNames = null;
50   private Directory[] directories = null;
51   private List list = null;
52   private FoldingTreeNode node = null;
53   private FoldingTreeNode root = null;
54   private FileTree fileTree = null;
55
56   static {
57     TestUtils.initLogger();
58   }
59
60   public FileTreeTest( String JavaDoc name ) {
61     super( name );
62   }
63
64   private void setUpFileManager() throws IOException {
65
66     //
67
// delete testdir if it exists
68
//
69
testDir_ = new File( "build/testdir" );
70     if ( testDir_.exists() )
71       FileUtils.deleteDirectory( testDir_ );
72
73     //
74
// create testdir
75
//
76
testDir_.mkdir();
77
78     //
79
// build/
80
// testdir/
81
// testdir1/ (Dir1)
82
// testfile1.txt
83
// testfile2.txt
84
// testdir2/ (Dir2)
85
// testdir3/
86
// testfile3.txt
87
// testdir4/
88
// testfile4.txt
89
//
90
testDir1_ = new File( "build/testdir/testdir1" );
91     testDir1_.mkdir();
92
93     testFile1_ = new File( "build/testdir/testdir1/testfile1.txt" );
94     testFile1_.createNewFile();
95
96     testFile2_ = new File( "build/testdir/testdir1/testfile2.txt" );
97     testFile2_.createNewFile();
98
99     testDir2_ = new File( "build/testdir/testdir2" );
100     testDir2_.mkdir();
101
102     testDir3_ = new File( "build/testdir/testdir2/testdir3" );
103     testDir3_.mkdir();
104
105     testDir4_ = new File( "build/testdir/testdir2/testdir4" );
106     testDir4_.mkdir();
107
108     testFile3_ = new File( "build/testdir/testdir2/testdir3/testfile3.txt" );
109     testFile3_.createNewFile();
110
111     testFile4_ = new File( "build/testdir/testdir2/testfile4.txt" );
112     testFile4_.createNewFile();
113
114     fileManager = new FileManager();
115     fileManager.addDirectory( "Dir1", testDir1_ );
116     fileManager.addDirectory( "Dir2", testDir2_ );
117   }
118
119   private void setUpFileTree() {
120     fileTree = new FileTree();
121     fileTree.build( fileManager );
122   }
123
124   protected void setUp() {
125     try {
126     }
127     catch ( Exception JavaDoc e ) {
128       fail( e.getMessage() );
129     }
130   }
131
132   protected void tearDown() {
133   }
134
135   public void testNewNode() {
136     try {
137       setUpFileManager();
138
139       fileTree = new FileTree();
140
141       node = fileTree.newNode( "Dir1" );
142       assertNotNull( node );
143       assertEquals( "Dir1", node.getLabel() );
144       assertEquals( "listFiles.do?path=Dir1", node.getUrl() );
145       assertEquals( false, node.getOpened() );
146       assertEquals( 0, node.getChildCount() );
147       assertEquals( "dir", node.getIconHint() );
148
149       node = fileTree.newNode( "Dir2/testdir3" );
150       assertNotNull( node );
151       assertEquals( "testdir3", node.getLabel() );
152       assertEquals( "listFiles.do?path=Dir2/testdir3", node.getUrl() );
153       assertEquals( false, node.getOpened() );
154       assertEquals( 0, node.getChildCount() );
155       assertEquals( "dir", node.getIconHint() );
156     }
157     catch ( Exception JavaDoc e ) {
158       e.printStackTrace();
159       fail();
160     }
161   }
162
163   public void testUpdateNode() {
164     try {
165       setUpFileManager();
166
167       fileTree = new FileTree();
168
169       //
170
// set up a node
171
//
172
node = fileTree.newNode( "Dir1" );
173       node.setOpened( true );
174
175       fileTree.updateNode( node, "Dir2/testdir3" );
176       assertNotNull( node );
177       assertEquals( "testdir3", node.getLabel() );
178       assertEquals( "listFiles.do?path=Dir2/testdir3", node.getUrl() );
179       assertEquals( true, node.getOpened() );
180       assertEquals( 0, node.getChildCount() );
181       assertEquals( "dir", node.getIconHint() );
182     }
183     catch ( Exception JavaDoc e ) {
184       e.printStackTrace();
185       fail();
186     }
187   }
188
189   public void testBuildNode() {
190     try {
191       setUpFileManager();
192
193       fileTree = new FileTree();
194
195       node = fileTree.buildNode( "Dir1", testDir1_ );
196       assertNotNull( node );
197       assertEquals( "Dir1", node.getLabel() );
198       assertEquals( "listFiles.do?path=Dir1", node.getUrl() );
199       assertEquals( false, node.getOpened() );
200       assertEquals( 0, node.getChildCount() );
201
202       node = fileTree.buildNode( "Dir2", testDir2_ );
203       assertNotNull( node );
204       assertEquals( "Dir2", node.getLabel() );
205       assertEquals( "listFiles.do?path=Dir2", node.getUrl() );
206       assertEquals( false, node.getOpened() );
207       assertEquals( 2, node.getChildCount() );
208
209       node = ( FoldingTreeNode )node.getChildAt( 0 );
210       assertNotNull( node );
211       assertEquals( "testdir3", node.getLabel() );
212       assertEquals( "listFiles.do?path=Dir2/testdir3", node.getUrl() );
213       assertEquals( false, node.getOpened() );
214       assertEquals( 0, node.getChildCount() );
215     }
216     catch ( Exception JavaDoc e ) {
217       e.printStackTrace();
218       fail();
219     }
220   }
221
222   public void testBuild() {
223     try {
224       setUpFileManager();
225
226       fileTree = new FileTree();
227       fileTree.build( fileManager );
228
229       assertNotNull( fileTree.getRoot() );
230
231       root = ( FoldingTreeNode )fileTree.getRoot();
232       assertEquals( 2, root.getChildCount() );
233       assertEquals( true, root.getOpened() );
234
235       node = ( FoldingTreeNode )root.getChildAt( 0 );
236       assertEquals( "Dir1", node.getLabel() );
237       assertEquals( "listFiles.do?path=Dir1", node.getUrl() );
238       assertEquals( "dir", node.getIconHint() );
239       assertEquals( 0, node.getChildCount() );
240       assertEquals( false, node.getOpened() );
241
242       node = ( FoldingTreeNode )root.getChildAt( 1 );
243       assertEquals( "Dir2", node.getLabel() );
244       assertEquals( "listFiles.do?path=Dir2", node.getUrl() );
245       assertEquals( "dir", node.getIconHint() );
246       assertEquals( 2, node.getChildCount() );
247       assertEquals( false, node.getOpened() );
248
249       node = ( FoldingTreeNode )node.getChildAt( 0 );
250       assertEquals( "testdir3", node.getLabel() );
251       assertEquals( "listFiles.do?path=Dir2/testdir3", node.getUrl() );
252       assertEquals( "dir", node.getIconHint() );
253       assertEquals( false, node.getOpened() );
254     }
255     catch ( Exception JavaDoc e ) {
256       e.printStackTrace();
257       fail();
258     }
259   }
260
261   public void testFind() {
262     try {
263       setUpFileManager();
264       setUpFileTree();
265
266       //
267
// find a top-level node
268
//
269
node = fileTree.find( "Dir1" );
270       assertNotNull( node );
271       assertEquals( "Dir1", node.getLabel() );
272
273       //
274
// find a sub-directory
275
//
276
node = fileTree.find( "Dir2/testdir3" );
277       assertNotNull( node );
278       assertEquals( "testdir3", node.getLabel() );
279     }
280     catch ( Exception JavaDoc e ) {
281       e.printStackTrace();
282       fail();
283     }
284   }
285
286   public void testMove() {
287     try {
288       //
289
// move and rename a directory
290
//
291
setUpFileManager();
292       setUpFileTree();
293
294       fileTree.move( "Dir2", new String JavaDoc[] { "testdir3" }, "Dir1", "newtestdir3" );
295
296       node = fileTree.find( "Dir1/newtestdir3" );
297       assertNotNull( node );
298
299       node = fileTree.find( "Dir2/testdir3" );
300       assertNull( node );
301
302       //
303
// move a set of directories
304
//
305
setUpFileManager();
306       setUpFileTree();
307
308       fileTree.move( "Dir2", new String JavaDoc[] { "testdir3", "testdir4" }, "Dir1", "" );
309
310       node = fileTree.find( "Dir1/testdir3" );
311       assertNotNull( node );
312
313       node = fileTree.find( "Dir1/testdir4" );
314       assertNotNull( node );
315
316       node = fileTree.find( "Dir2/testdir3" );
317       assertNull( node );
318
319       node = fileTree.find( "Dir2/testdir4" );
320       assertNull( node );
321     }
322     catch ( Exception JavaDoc e ) {
323       e.printStackTrace();
324       fail();
325     }
326   }
327
328   public void testCopy() {
329     try {
330       //
331
// copy and rename a directory
332
//
333
setUpFileManager();
334       setUpFileTree();
335
336       fileTree.copy( "Dir2", new String JavaDoc[] { "testdir3" }, "Dir1", "newtestdir3" );
337
338       node = fileTree.find( "Dir1/newtestdir3" );
339       assertNotNull( node );
340
341       node = fileTree.find( "Dir2/testdir3" );
342       assertNotNull( node );
343
344       //
345
// move a set of directories
346
//
347
setUpFileManager();
348       setUpFileTree();
349
350       fileTree.copy( "Dir2", new String JavaDoc[] { "testdir3", "testdir4" }, "Dir1", "" );
351
352       node = fileTree.find( "Dir1/testdir3" );
353       assertNotNull( node );
354
355       node = fileTree.find( "Dir1/testdir4" );
356       assertNotNull( node );
357
358       node = fileTree.find( "Dir2/testdir3" );
359       assertNotNull( node );
360
361       node = fileTree.find( "Dir2/testdir4" );
362       assertNotNull( node );
363     }
364     catch ( Exception JavaDoc e ) {
365       e.printStackTrace();
366       fail();
367     }
368   }
369
370   public void testDelete() {
371     try {
372       //
373
// create a directory
374
//
375
setUpFileManager();
376       setUpFileTree();
377
378       fileTree.delete( "Dir2", new String JavaDoc[] { "testdir3", "testdir4" } );
379
380       node = fileTree.find( "Dir2/testdir3" );
381       assertNull( node );
382
383       node = fileTree.find( "Dir2/testdir4" );
384       assertNull( node );
385     }
386     catch ( Exception JavaDoc e ) {
387       e.printStackTrace();
388       fail();
389     }
390   }
391
392   public void testCreate() {
393     try {
394       //
395
// create a directory
396
//
397
setUpFileManager();
398       setUpFileTree();
399
400       fileTree.create( "Dir2", "testdir5", false );
401
402       node = fileTree.find( "Dir2/testdir5" );
403       assertNull( node );
404
405       fileTree.create( "Dir2", "testdir5", true );
406
407       node = fileTree.find( "Dir2/testdir5" );
408       assertNotNull( node );
409     }
410     catch ( Exception JavaDoc e ) {
411       e.printStackTrace();
412       fail();
413     }
414   }
415 }
416
Popular Tags