gvsig-scripting / org.gvsig.scripting / trunk / org.gvsig.scripting / org.gvsig.scripting.lib / org.gvsig.scripting.lib.api / src / test / java / org / gvsig / scripting / TestScript.java @ 441
History | View | Annotate | Download (5.56 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 TestScript extends AbstractLibraryAutoInitTestCase { |
12 |
|
13 |
protected ScriptingManager manager;
|
14 |
|
15 |
@Override
|
16 |
protected void doSetUp() throws Exception { |
17 |
ScriptingLocator locator = new ScriptingLocator();
|
18 |
Assert.assertNotNull(locator); |
19 |
manager = ScriptingLocator.getManager(); |
20 |
Assert.assertNotNull(manager); |
21 |
} |
22 |
|
23 |
public void setWorkingFolder(){ |
24 |
File file =new File(this.getClass().getClassLoader().getResource("org/gvsig/scripting/home").getFile()); |
25 |
if(file.exists()){
|
26 |
file.mkdir(); |
27 |
} |
28 |
// FIXME: hay que sustituirlo por manager.setHomeFolder(home)
|
29 |
// manager.setRootUserFolder(file.getAbsolutePath());
|
30 |
} |
31 |
|
32 |
public void deleteFolderContent(ScriptingFolder folder){ |
33 |
List<ScriptingUnit> units = folder.getUnits();
|
34 |
Iterator<ScriptingUnit> it = units.iterator();
|
35 |
while(it.hasNext()){
|
36 |
ScriptingUnit unit = it.next(); |
37 |
if(unit instanceof ScriptingFolder){ |
38 |
deleteFolderContent((ScriptingFolder)unit); |
39 |
folder.remove(unit); |
40 |
}else{
|
41 |
folder.remove(unit); |
42 |
} |
43 |
} |
44 |
} |
45 |
|
46 |
public void deleteWorkingFolderContent(){ |
47 |
setWorkingFolder(); |
48 |
ScriptingFolder folder = manager.getUserFolder(); |
49 |
deleteFolderContent(folder); |
50 |
} |
51 |
|
52 |
public File getFile(ScriptingFolder folder, String name){ |
53 |
return new File(folder.getFile(),name); |
54 |
} |
55 |
|
56 |
public void checkFile(ScriptingFolder folder, String fName){ |
57 |
File fscript = getFile(folder, fName);
|
58 |
Assert.assertTrue(fscript.exists()); |
59 |
} |
60 |
|
61 |
public void checkScriptDefaultValues(ScriptingScript script){ |
62 |
Assert.assertEquals(manager.getUserFolder().getFile().getAbsolutePath(), script.getParent().getFile().getAbsolutePath()); |
63 |
|
64 |
Assert.assertEquals("test_script", script.getId());
|
65 |
Assert.assertEquals("test_script", script.getName());
|
66 |
Assert.assertEquals("python", script.getLangName());
|
67 |
Assert.assertEquals("main", script.getMainName());
|
68 |
} |
69 |
|
70 |
public void checkScriptNewValues(ScriptingScript script){ |
71 |
Assert.assertEquals("test_script", script.getId());
|
72 |
Assert.assertEquals("TestScript", script.getName());
|
73 |
Assert.assertEquals("Tests sobre scripts", script.getDescription());
|
74 |
Assert.assertEquals("python", script.getLangName());
|
75 |
Assert.assertEquals("main", script.getMainName());
|
76 |
Assert.assertEquals("creator", script.getCreatedBy());
|
77 |
Assert.assertEquals("v1.0", script.getVersion());
|
78 |
Assert.assertEquals("def main():\n return 'hola mundo'\n",script.getCode());
|
79 |
} |
80 |
|
81 |
public void testCreation(){ |
82 |
setWorkingFolder(); |
83 |
ScriptingScript previous = (ScriptingScript) manager.getScript(new File(manager.getRootUserFolder()+File.separator+"test_script.py")); |
84 |
if (previous!=null){ |
85 |
manager.getUserFolder().remove(previous); |
86 |
} |
87 |
ScriptingScript script = (ScriptingScript) manager.createUnit(ScriptingManager.UNIT_SCRIPT,manager.getUserFolder(),"test_script.py");
|
88 |
|
89 |
script.save(); |
90 |
|
91 |
checkFile(manager.getUserFolder(),"test_script.py");
|
92 |
checkFile(manager.getUserFolder(),"test_script.inf");
|
93 |
|
94 |
checkScriptDefaultValues(script); |
95 |
} |
96 |
|
97 |
public void testOpen(){ |
98 |
testCreation(); |
99 |
ScriptingScript script = (ScriptingScript) manager.getScript(getFile(manager.getUserFolder(),"test_script.py"));
|
100 |
|
101 |
checkScriptDefaultValues(script); |
102 |
deleteWorkingFolderContent(); |
103 |
} |
104 |
|
105 |
public void testSave(){ |
106 |
testCreation(); |
107 |
ScriptingScript script = (ScriptingScript) manager.getScript(getFile(manager.getUserFolder(),"test_script.py"));
|
108 |
|
109 |
script.setName("TestScript");
|
110 |
script.setDescription("Tests sobre scripts");
|
111 |
script.setCode("def main():\n return 'hola mundo'\n");
|
112 |
script.setCreatedBy("creator");
|
113 |
script.setVersion("v1.0");
|
114 |
script.save(); |
115 |
|
116 |
script = (ScriptingScript) manager.getScript(getFile(manager.getUserFolder(),"test_script.py"));
|
117 |
checkScriptNewValues(script); |
118 |
} |
119 |
|
120 |
public void testRename(){ |
121 |
testSave(); |
122 |
ScriptingScript script = (ScriptingScript) manager.getScript(getFile(manager.getUserFolder(),"test_script.py"));
|
123 |
|
124 |
Assert.assertFalse(script.rename("test_script"));
|
125 |
Assert.assertTrue(script.rename("test_script2"));
|
126 |
|
127 |
script = (ScriptingScript) manager.getScript(getFile(manager.getUserFolder(),"test_script2.py"));
|
128 |
|
129 |
Assert.assertEquals("test_script2", script.getId());
|
130 |
deleteWorkingFolderContent(); |
131 |
} |
132 |
|
133 |
public void testMove(){ |
134 |
setWorkingFolder(); |
135 |
ScriptingFolder folderDestination = (ScriptingFolder) manager.createUnit(ScriptingManager.UNIT_FOLDER,manager.getUserFolder(), "other folder");
|
136 |
checkFile(manager.getUserFolder(),"other folder");
|
137 |
|
138 |
ScriptingScript previous = (ScriptingScript) manager.getScript(new File(folderDestination.getFile(),"test_script.py")); |
139 |
if (previous!=null){ |
140 |
folderDestination.remove(previous); |
141 |
} |
142 |
|
143 |
testSave(); |
144 |
ScriptingScript script = (ScriptingScript) manager.getScript(getFile(manager.getUserFolder(),"test_script.py"));
|
145 |
|
146 |
script.move(folderDestination); |
147 |
System.out.println(script.getParent() + " " + folderDestination); |
148 |
Assert.assertEquals(script.getParent(),folderDestination); |
149 |
deleteWorkingFolderContent(); |
150 |
} |
151 |
|
152 |
public void testRun() throws NoSuchMethodException{ |
153 |
testSave(); |
154 |
ScriptingScript script = (ScriptingScript) manager.getScript(getFile(manager.getUserFolder(),"test_script.py"));
|
155 |
Assert.assertEquals("hola mundo", script.run());
|
156 |
|
157 |
script.setCode("def hola():\n return 'hola mundo'\n");
|
158 |
//setMainName
|
159 |
script.setMainName("hola");
|
160 |
Assert.assertEquals("hola mundo", script.run());
|
161 |
|
162 |
//invokeMethod
|
163 |
|
164 |
//invokeFunction
|
165 |
Assert.assertEquals("hola mundo", script.invokeFunction("hola", null)); |
166 |
deleteWorkingFolderContent(); |
167 |
|
168 |
} |
169 |
|
170 |
|
171 |
} |