Statistics
| Revision:

gvsig-scripting / trunk / org.gvsig.scripting / org.gvsig.scripting.lib / org.gvsig.scripting.lib.api / src / test / java / org / gvsig / scripting / TestFolder.java @ 212

History | View | Annotate | Download (3.37 KB)

1
package org.gvsig.scripting;
2

    
3
import java.io.File;
4
import java.util.Iterator;
5
import java.util.List;
6

    
7
import junit.framework.Assert;
8

    
9
import org.gvsig.tools.junit.AbstractLibraryAutoInitTestCase;
10

    
11
public abstract class TestFolder extends AbstractLibraryAutoInitTestCase {
12

    
13
        protected ScriptingManager manager;
14
        
15
        @Override
16
        protected void doSetUp() throws Exception {
17
                manager = ScriptingLocator.getManager();
18
        }
19
        
20
        public void setWorkingFolder(){
21
                File file =new File(this.getClass().getClassLoader().getResource("org/gvsig/scripting/home").getFile());
22
                if(file.exists()){
23
                        file.mkdir();
24
                }
25
                manager.setRootUserFolder(file.getAbsolutePath());
26
        }
27
        
28
        public void deleteFolderContent(ScriptingFolder folder){
29
                List<ScriptingUnit> units = folder.getUnits();
30
        Iterator<ScriptingUnit> it = units.iterator();
31
                while(it.hasNext()){
32
                        ScriptingUnit unit = it.next();
33
                        if(unit instanceof ScriptingFolder){
34
                                deleteFolderContent((ScriptingFolder)unit);
35
                                folder.remove(unit);
36
                        }else{
37
                                folder.remove(unit);
38
                        }
39
                }
40
        }
41
        
42
        public void deleteWorkingFolderContent(){
43
                setWorkingFolder();
44
                ScriptingFolder folder = manager.getUserFolder();
45
                deleteFolderContent(folder);
46
        }
47
        
48
        public File getFile(ScriptingFolder folder, String name){
49
                return new File(folder.getPath()+File.separator+File.separator+name);
50
        }
51
        
52
        public void checkFolder(ScriptingFolder folder, String fName){
53
                File ffolder = getFile(folder, fName);
54
                Assert.assertTrue(ffolder.exists());
55
                Assert.assertTrue(ffolder.isDirectory());
56
        }
57
        
58
        public void checkScriptDefaultValues(ScriptingScript script){
59
                Assert.assertEquals("test_script", script.getId());
60
                Assert.assertEquals("test_script", script.getName());
61
                Assert.assertEquals("python", script.getLangName());
62
                Assert.assertEquals("main", script.getMainName());
63
        }
64

    
65
        public void testCreation(){
66
                deleteWorkingFolderContent();
67
                ScriptingFolder folder = (ScriptingFolder) manager.createUnit(ScriptingManager.UNIT_FOLDER,manager.getUserFolder(),"test_folder");
68
                
69
                checkFolder(manager.getUserFolder(),folder.getId());
70
        }
71

    
72
        public void testList(){
73
                testCreation();
74
                ScriptingFolder folder = manager.getFolder(getFile(manager.getUserFolder(),"test_folder"));
75

    
76
                ScriptingScript script = (ScriptingScript) manager.createUnit(ScriptingManager.UNIT_SCRIPT,folder, "test_script.py");
77
                
78
        List<ScriptingUnit> units = folder.getUnits();
79
        Iterator<ScriptingUnit> it = units.iterator();
80
                while(it.hasNext()){
81
                        ScriptingUnit unit = it.next();
82
                        checkScriptDefaultValues((ScriptingScript) unit);
83
                }
84
                
85
                folder.remove(script);
86
                Assert.assertTrue(folder.getUnits().isEmpty());
87
        }
88
        
89
        public void testRename(){
90
                testCreation();
91
                ScriptingFolder folder = manager.getFolder(getFile(manager.getUserFolder(),"test_folder"));
92
                
93
                Assert.assertFalse(folder.rename("test_folder"));
94
                Assert.assertTrue(folder.rename("test_folder2"));
95
                
96
                Assert.assertEquals("test_folder2", folder.getName());
97
                deleteWorkingFolderContent();
98
        }
99
        
100
        public void testMove(){
101
                testCreation();
102
                ScriptingScript script = (ScriptingScript) manager.createUnit(ScriptingManager.UNIT_SCRIPT,manager.getUserFolder(), "test_script.py");        
103
                ScriptingFolder folder = manager.getFolder(getFile(manager.getUserFolder(),"test_folder"));
104
                Assert.assertEquals(script.getParent().getPath(),manager.getUserFolder().getPath());
105
                
106
                folder.add(script);
107
                Assert.assertEquals(script.getParent(),folder);
108
                deleteWorkingFolderContent();
109
        }
110

    
111

    
112
}