Statistics
| Revision:

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

History | View | Annotate | Download (3.34 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
//                FIXME: hay que sustituirlo por manager.setHomeFolder(home) 
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 void testUserFolderPath(){
49
                setWorkingFolder();
50
                Assert.assertEquals(manager.getRootUserFolder().getAbsolutePath(), manager.getUserFolder().getFile().getAbsolutePath());
51
        }
52
        
53
        public void testExistsScriptId(){
54
                setWorkingFolder();
55
                manager.createUnit(ScriptingManager.UNIT_SCRIPT,manager.getUserFolder(),"test_script.py");
56
                
57
                Assert.assertEquals(false, manager.validateUnitId(manager.getUserFolder(),"test_script"));
58
                Assert.assertEquals(true, manager.validateUnitId(manager.getUserFolder(),"test_script2"));
59
                deleteWorkingFolderContent();
60
        }
61

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

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

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

    
103

    
104
}