Statistics
| Revision:

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

History | View | Annotate | Download (3.26 KB)

1
package org.gvsig.scripting;
2

    
3
import java.io.File;
4
import java.util.Iterator;
5
import java.util.List;
6
import java.util.Map;
7
import java.util.Set;
8

    
9
import junit.framework.Assert;
10

    
11
import org.gvsig.tools.junit.AbstractLibraryAutoInitTestCase;
12

    
13
public abstract class TestManager extends AbstractLibraryAutoInitTestCase {
14

    
15
        protected ScriptingManager manager;
16
        
17
        @Override
18
        protected void doSetUp() throws Exception {
19
                manager = ScriptingLocator.getManager();
20
        }
21
        
22
        public void setWorkingFolder(){
23
                File file =new File(this.getClass().getClassLoader().getResource("org/gvsig/scripting/home").getFile());
24
                manager.setRootUserFolder(file.getAbsolutePath());
25
        }
26
        
27
        public void deleteFolderContent(ScriptingFolder folder){
28
                List<ScriptingUnit> units = folder.getUnits();
29
        Iterator<ScriptingUnit> it = units.iterator();
30
                while(it.hasNext()){
31
                        ScriptingUnit unit = it.next();
32
                        if(unit instanceof ScriptingFolder){
33
                                deleteFolderContent((ScriptingFolder)unit);
34
                                folder.remove(unit);
35
                        }else{
36
                                folder.remove(unit);
37
                        }
38
                }
39
        }
40
        
41
        public void deleteWorkingFolderContent(){
42
                setWorkingFolder();
43
                ScriptingFolder folder = manager.getUserFolder();
44
                deleteFolderContent(folder);
45
        }
46
        
47
        public void testUserFolderPath(){
48
                setWorkingFolder();
49
                Assert.assertEquals(manager.getRootUserFolder(), manager.getUserFolder().getPath());
50
        }
51
        
52
        public void testExistsScriptId(){
53
                setWorkingFolder();
54
                manager.createUnit(ScriptingManager.UNIT_SCRIPT,manager.getUserFolder(),"test_script.py");
55
                
56
                Assert.assertEquals(false, manager.validateUnitId(manager.getUserFolder(),"test_script"));
57
                Assert.assertEquals(true, manager.validateUnitId(manager.getUserFolder(),"test_script2"));
58
                deleteWorkingFolderContent();
59
        }
60

    
61
        public void testExtensionsAndLanguages(){
62
        Map<String, String> langByExt =
63
            manager.getSupportedLanguagesByExtension();
64
        Map<String, String> extByLang = manager.getExtensionsByLanguages();
65
                
66
        Set<String> keyExt = langByExt.keySet();
67
        Iterator<String> it = keyExt.iterator();
68
                while(it.hasNext()){
69
                        Object ext = it.next();
70
                        Object lang = langByExt.get(ext);
71
                        Assert.assertEquals(extByLang.get(lang), ext);
72
                }
73
        }
74

    
75
        public void checkUnitValues(ScriptingUnit unit1, ScriptingUnit unit2){
76
                Assert.assertEquals(unit1.getId(),unit2.getId());
77
                Assert.assertEquals(unit1.getName(),unit2.getName());
78
        }
79
        
80
        public void testRegisteringSystemFolders(){
81
                ScriptingFolder folder_parent = (ScriptingFolder) manager.createUnit(ScriptingManager.UNIT_FOLDER,manager.getUserFolder(), "test");
82
                ScriptingFolder folder = (ScriptingFolder) manager.createUnit(ScriptingManager.UNIT_FOLDER,folder_parent, "test");
83
                ScriptingScript script = (ScriptingScript)manager.createUnit(ScriptingManager.UNIT_SCRIPT,folder, "test_script.py");
84
                
85
                manager.registerSystemFolder("test", new File(folder.getPath()));
86
                
87
                List<ScriptingUnit> units = manager.getSystemFolder().getUnits();
88

    
89
        Iterator<ScriptingUnit> it = units.iterator();
90
                ScriptingUnit unit = null;
91
                while(it.hasNext()){
92
                        unit = it.next();
93
                        checkUnitValues(unit, folder);
94
                }
95
                Assert.assertNotNull(unit);
96
                
97
                ScriptingScript script2 = (ScriptingScript) manager.getScript(new File(((ScriptingFolder)unit).getPath()+File.separator+script.getId()+".py"));
98
                checkUnitValues(script,script2);
99
                deleteWorkingFolderContent();
100
        }
101

    
102

    
103
}